caf2eb8b-4431-40aa-b249-a01dc82d0abe
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 |
|---|---|---|---|---|
| 30811 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 104525 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 104526 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 104527 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 104528 | capability.graph | complete | 1 / 3 | 1 week ago |
| 104529 | detector.run | complete | 1 / 3 | 1 week ago |
| 104530 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:473710] OpenAI Codex v0.77.0 (research preview)
[codex:473710] --------
[codex:473710] workdir: /tmp/codex-multi-pok4974z
[codex:473710] model: gpt-5.2-codex
[codex:473710] provider: openai
[codex:473710] approval: never
[codex:473710] sandbox: read-only
[codex:473710] reasoning effort: xhigh
[codex:473710] reasoning summaries: auto
[codex:473710] session id: 019b7174-e1f7-73f0-9b4c-4d6fe5fc5db1
[codex:473710] --------
[codex:473710] user
[codex:473710] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:473710] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:473710] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:473710]
[codex:473710] Scope rules:
[codex:473710] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:473710] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:473710]
[codex:473710] Output MUST be valid JSON matching the provided schema.
[codex:473710] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:473710] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:473710]
[codex:473710] Output constraints (IMPORTANT):
[codex:473710] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:473710] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:473710] mcp startup: no servers
[codex:473710]
[codex:473710] thinking
[codex:473710] **Preparing to check available skills**
[codex:473710] exec
[codex:473710] /bin/bash -lc ls in /tmp/codex-multi-pok4974z succeeded in 5ms:
[codex:473710] AUDIT_BUNDLE.txt
[codex:473710] codex-output-schema.json
[codex:473710] contracts
[codex:473710]
[codex:473710] thinking
[codex:473710] **Opening AUDIT_BUNDLE.txt**
[codex:473710] exec
[codex:473710] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-pok4974z succeeded in 5ms:
[codex:473710] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:473710]
[codex:473710] ================================================================================
[codex:473710] FILE: contracts/Contract.sol
[codex:473710] ================================================================================
[codex:473710] pragma solidity ^0.5.16;
[codex:473710]
[codex:473710] interface IERC20 {
[codex:473710] function totalSupply() external view returns (uint256);
[codex:473710] function balanceOf(address account) external view returns (uint256);
[codex:473710] function transfer(address recipient, uint256 amount) external returns (bool);
[codex:473710] function allowance(address owner, address spender) external view returns (uint256);
[codex:473710] function approve(address spender, uint256 amount) external returns (bool);
[codex:473710] function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
[codex:473710] event Transfer(address indexed from, address indexed to, uint256 value);
[codex:473710] event Approval(address indexed owner, address indexed spender, uint256 value);
[codex:473710] }
[codex:473710]
[codex:473710] contract Context {
[codex:473710] constructor () internal { }
[codex:473710]
[codex:473710]
[codex:473710] thinking
[codex:473710] **Evaluating Yearn vault contract vulnerabilities**
[codex:473710]
[codex:473710] I'm analyzing the vault contract's access controls, deposit/withdraw logic, and interactions with controller and token contracts, focusing on reentrancy risks, share accounting with deflationary tokens, and potential governance misconfigurations that might cause denial-of-service or unexpected behaviors. There's a lot to unpack here about safeTransfer implications, external calls, and arithmetic edge cases.
[codex:473710] thinking
[codex:473710] **Modeling reentrancy impact on shares minting**
[codex:473710]
[codex:473710] I'm testing if reentrancy during deposit and withdraw can let an attacker game share minting by manipulating pool size and totalSupply. The math suggests the attacker gains no advantage since minted shares decrease after reentrant withdraw reduces totalSupply, so reentrancy here doesn’t seem exploitable.
[codex:473710] exec
[codex:473710] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-pok4974z succeeded in 6ms:
[codex:473710] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:473710]
[codex:473710]
[codex:473710] thinking
[codex:473710] **Evaluating share minting vulnerabilities**
[codex:473710] thinking
[codex:473710] **Confirming donation attack severity and details**
[codex:473710]
[codex:473710] I’m weighing the medium-to-high severity of the “first deposit donation attack” that causes zero-share minting and permanent fund loss, noting how minimal donations can block deposits completely, griefing depositors. I’ll verify line numbers in the contract for precise references to support this finding.
[codex:473710] exec
[codex:473710] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '200,340p'" in /tmp/codex-multi-pok4974z succeeded in 6ms:
[codex:473710] 200 return a % b;
[codex:473710] 201 }
[codex:473710] 202 }
[codex:473710] 203
[codex:473710] 204 library Address {
[codex:473710] 205 function isContract(address account) internal view returns (bool) {
[codex:473710] 206 bytes32 codehash;
[codex:473710] 207 bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
[codex:473710] 208 // solhint-disable-next-line no-inline-assembly
[codex:473710] 209 assembly { codehash := extcodehash(account) }
[codex:473710] 210 return (codehash != 0x0 && codehash != accountHash);
[codex:473710] 211 }
[codex:473710] 212 function toPayable(address account) internal pure returns (address payable) {
[codex:473710] 213 return address(uint160(account));
[codex:473710] 214 }
[codex:473710] 215 function sendValue(address payable recipient, uint256 amount) internal {
[codex:473710] 216 require(address(this).balance >= amount, "Address: insufficient balance");
[codex:473710] 217
[codex:473710] 218 // solhint-disable-next-line avoid-call-value
[codex:473710] 219 (bool success, ) = recipient.call.value(amount)("");
[codex:473710]
[codex:473710] thinking
[codex:473710] **Needing more lines for withdrawal**
[codex:473710] exec
[codex:473710] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '338,430p'" in /tmp/codex-multi-pok4974z succeeded in 6ms:
[codex:473710] 338
[codex:473710] 339 // No rebalance implementation for lower fees and faster swaps
[codex:473710] 340 function withdraw(uint _shares) external {
[codex:473710] 341 uint r = (balance().mul(_shares)).div(totalSupply());
[codex:473710] 342 _burn(msg.sender, _shares);
[codex:473710] 343
[codex:473710] 344 // Check balance
[codex:473710] 345 uint b = token.balanceOf(address(this));
[codex:473710] 346 if (b < r) {
[codex:473710] 347 uint _withdraw = r.sub(b);
[codex:473710] 348 Controller(controller).withdraw(address(token), _withdraw);
[codex:473710] 349 uint _after = token.balanceOf(address(this));
[codex:473710] 350 uint _diff = _after.sub(b);
[codex:473710] 351 if (_diff < _withdraw) {
[codex:473710] 352 r = b.add(_diff);
[codex:473710] 353 }
[codex:473710] 354 }
[codex:473710] 355
[codex:473710] 356 token.safeTransfer(msg.sender, r);
[codex:473710] 357 }
[codex:473710]
[codex:473710] thinking
[codex:473710] **Verifying line number referencing**
[codex:473710] exec
[codex:473710] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '250,360p'" in /tmp/codex-multi-pok4974z succeeded in 6ms:
[codex:473710] 250 // solhint-disable-next-line avoid-low-level-calls
[codex:473710] 251 (bool success, bytes memory returndata) = address(token).call(data);
[codex:473710] 252 require(success, "SafeERC20: low-level call failed");
[codex:473710] 253
[codex:473710] 254 if (returndata.length > 0) { // Return data is optional
[codex:473710] 255 // solhint-disable-next-line max-line-length
[codex:473710] 256 require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
[codex:473710] 257 }
[codex:473710] 258 }
[codex:473710] 259 }
[codex:473710] 260
[codex:473710] 261 interface Controller {
[codex:473710] 262 function withdraw(address, uint) external;
[codex:473710] 263 function balanceOf(address) external view returns (uint);
[codex:473710] 264 function earn(address, uint) external;
[codex:473710] 265 }
[codex:473710] 266
[codex:473710] 267 contract yVault is ERC20, ERC20Detailed {
[codex:473710] 268 using SafeERC20 for IERC20;
[codex:473710] 269 using Address for address;
[codex:473710]
[codex:473710] thinking
[codex:473710] **Composing detailed vulnerability report**
[codex:473710]
[codex:473710] I’m putting together a comprehensive JSON report outlining a medium-severity math vulnerability in share minting due to donation-induced vault balance inflation when totalSupply is low or zero. I want to clearly define the exploit scenario, evidence referencing specific code lines, and solid recommendations to help the user understand this subtle but impactful risk.
[codex:473710] codex
[codex:473710] {"no_findings":false,"summary":"Found 1 medium-severity accounting issue in yVault share minting that allows donation-based share price inflation when totalSupply is low/zero, leading to zero-share mints and potential deposit theft.","findings":[{"severity":"medium","category":"math","title":"Share inflation via donations can force zero-share mints and steal deposits","exploit_scenario":"An attacker deposits a minimal amount to mint 1 share, then directly transfers (donates) a large amount of underlying tokens to the vault, inflating `_pool` without increasing `totalSupply`. A victim who deposits afterward receives `shares = amount * totalSupply / _pool`, which truncates to 0 when the donated amount exceeds the victim’s deposit. The attacker then withdraws their single share and receives essentially the entire pool, including the victim’s deposit. A related griefing case exists if tokens are donated before the first deposit (totalSupply==0 but _pool>0), causing all deposits to mint 0 shares and locking funds.","recommendation":"Guard the initial mint based on `totalSupply()` (not just `_pool`) and prevent zero-share mints. Common mitigations: revert if `totalSupply()==0 && _pool>0`, mint a small non-withdrawable “seed” amount to a burn address, add virtual shares/liquidity, and/or require `shares > 0` to proceed.","evidence":"deposit() calculates shares using `_pool = balance()` and only checks `_pool==0`, so if `totalSupply()==0` but `_pool>0` (via donations), `shares = (_amount * totalSupply) / _pool` becomes 0; similarly, an inflated `_pool` with low `totalSupply` can force extreme truncation.","locations":["contracts/Contract.sol:322","contracts/Contract.sol:326","contracts/Contract.sol:329","contracts/Contract.sol:331"]}]}
[codex:473710] tokens used
[codex:473710] 20,155
[codex:473710] {"no_findings":false,"summary":"Found 1 medium-severity accounting issue in yVault share minting that allows donation-based share price inflation when totalSupply is low/zero, leading to zero-share mints and potential deposit theft.","findings":[{"severity":"medium","category":"math","title":"Share inflation via donations can force zero-share mints and steal deposits","exploit_scenario":"An attacker deposits a minimal amount to mint 1 share, then directly transfers (donates) a large amount of underlying tokens to the vault, inflating `_pool` without increasing `totalSupply`. A victim who deposits afterward receives `shares = amount * totalSupply / _pool`, which truncates to 0 when the donated amount exceeds the victim’s deposit. The attacker then withdraws their single share and receives essentially the entire pool, including the victim’s deposit. A related griefing case exists if tokens are donated before the first deposit (totalSupply==0 but _pool>0), causing all deposits to mint 0 shares and locking funds.","recommendation":"Guard the initial mint based on `totalSupply()` (not just `_pool`) and prevent zero-share mints. Common mitigations: revert if `totalSupply()==0 && _pool>0`, mint a small non-withdrawable “seed” amount to a burn address, add virtual shares/liquidity, and/or require `shares > 0` to proceed.","evidence":"deposit() calculates shares using `_pool = balance()` and only checks `_pool==0`, so if `totalSupply()==0` but `_pool>0` (via donations), `shares = (_amount * totalSupply) / _pool` becomes 0; similarly, an inflated `_pool` with low `totalSupply` can force extreme truncation.","locations":["contracts/Contract.sol:322","contracts/Contract.sol:326","contracts/Contract.sol:329","contracts/Contract.sol:331"]}]}
{
"codex": {
"ran_at": "2025-12-30T22:55:05.119241+00:00",
"returncode": 0
},
"summary": "Found 1 medium-severity accounting issue in yVault share minting that allows donation-based share price inflation when totalSupply is low/zero, leading to zero-share mints and potential deposit theft.",
"raw_final": {
"summary": "Found 1 medium-severity accounting issue in yVault share minting that allows donation-based share price inflation when totalSupply is low/zero, leading to zero-share mints and potential deposit theft.",
"findings": [
{
"title": "Share inflation via donations can force zero-share mints and steal deposits",
"category": "math",
"evidence": "deposit() calculates shares using `_pool = balance()` and only checks `_pool==0`, so if `totalSupply()==0` but `_pool>0` (via donations), `shares = (_amount * totalSupply) / _pool` becomes 0; similarly, an inflated `_pool` with low `totalSupply` can force extreme truncation.",
"severity": "medium",
"locations": [
"contracts/Contract.sol:322",
"contracts/Contract.sol:326",
"contracts/Contract.sol:329",
"contracts/Contract.sol:331"
],
"recommendation": "Guard the initial mint based on `totalSupply()` (not just `_pool`) and prevent zero-share mints. Common mitigations: revert if `totalSupply()==0 && _pool>0`, mint a small non-withdrawable \u201cseed\u201d amount to a burn address, add virtual shares/liquidity, and/or require `shares > 0` to proceed.",
"exploit_scenario": "An attacker deposits a minimal amount to mint 1 share, then directly transfers (donates) a large amount of underlying tokens to the vault, inflating `_pool` without increasing `totalSupply`. A victim who deposits afterward receives `shares = amount * totalSupply / _pool`, which truncates to 0 when the donated amount exceeds the victim\u2019s deposit. The attacker then withdraws their single share and receives essentially the entire pool, including the victim\u2019s deposit. A related griefing case exists if tokens are donated before the first deposit (totalSupply==0 but _pool>0), causing all deposits to mint 0 shares and locking funds."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x0173 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x77c7b8fc 00000026: GT 00000027: PUSH2 0x00de 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xb69ef8a8 00000031: GT 00000032: PUSH2 0x0097 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xdd62ed3e 0000003c: GT 0000003d: PUSH2 0x0071 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xdd62ed3e 00000047: EQ 00000048: PUSH2 0x0714 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xf77c4791 00000052: EQ 00000053: PUSH2 0x078c 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xf8897945 0000005d: EQ 0000005e: PUSH2 0x07d6 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xfc0c546a 00000068: EQ 00000069: PUSH2 0x07f4 0000006c: JUMPI 0000006d: PUSH2 0x0173 00000070: JUMP 00000071: JUMPDEST 00000072: DUP1 00000073: PUSH4 0xb69ef8a8 00000078: EQ 00000079: PUSH2 0x06be 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0xb6b55f25 00000083: EQ 00000084: PUSH2 0x06dc 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0xd389800f 0000008e: EQ 0000008f: PUSH2 0x070a 00000092: JUMPI 00000093: PUSH2 0x0173 00000096: JUMP 00000097: JUMPDEST 00000098: DUP1 00000099: PUSH4 0x77c7b8fc 0000009e: EQ 0000009f: PUSH2 0x04c9 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0x92eefe9b 000000a9: EQ 000000aa: PUSH2 0x04e7 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0x95d89b41 000000b4: EQ 000000b5: PUSH2 0x052b 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0xa457c2d7 000000bf: EQ 000000c0: PUSH2 0x05ae 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0xa9059cbb 000000ca: EQ 000000cb: PUSH2 0x0614 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0xab033ea9 000000d5: EQ 000000d6: PUSH2 0x067a 000000d9: JUMPI 000000da: PUSH2 0x0173 000000dd: JUMP 000000de: JUMPDEST 000000df: DUP1 000000e0: PUSH4 0x39509351 000000e5: GT 000000e6: PUSH2 0x0130 000000e9: JUMPI 000000ea: DUP1 000000eb: PUSH4 0x39509351 000000f0: EQ 000000f1: PUSH2 0x0357 000000f4: JUMPI 000000f5: DUP1 000000f6: PUSH4 0x45dc3dd8 000000fb: EQ 000000fc: PUSH2 0x03bd 000000ff: JUMPI 00000100: DUP1 00000101: PUSH4 0x48a0d754 00000106: EQ 00000107: PUSH2 0x03eb 0000010a: JUMPI 0000010b: DUP1 0000010c: PUSH4 0x5aa6e675 00000111: EQ 00000112: PUSH2 0x0409 00000115: JUMPI 00000116: DUP1 00000117: PUSH4 0x6ac5db19 0000011c: EQ 0000011d: PUSH2 0x0453 00000120: JUMPI 00000121: DUP1 00000122: PUSH4 0x70a08231 00000127: EQ 00000128: PUSH2 0x0471 0000012b: JUMPI 0000012c: PUSH2 0x0173 0000012f: JUMP 00000130: JUMPDEST 00000131: DUP1 00000132: PUSH4 0x06fdde03 00000137: EQ 00000138: PUSH2 0x0178 0000013b: JUMPI 0000013c: DUP1 0000013d: PUSH4 0x095ea7b3 00000142: EQ 00000143: PUSH2 0x01fb 00000146: JUMPI 00000147: DUP1 00000148: PUSH4 0x18160ddd 0000014d: EQ 0000014e: PUSH2 0x0261 00000151: JUMPI 00000152: DUP1 00000153: PUSH4 0x23b872dd 00000158: EQ 00000159: PUSH2 0x027f 0000015c: JUMPI 0000015d: DUP1 0000015e: PUSH4 0x2e1a7d4d 00000163: EQ 00000164: PUSH2 0x0305 00000167: JUMPI 00000168: DUP1 00000169: PUSH4 0x313ce567 0000016e: EQ 0000016f: PUSH2 0x0333 00000172: JUMPI 00000173: JUMPDEST 00000174: PUSH1 0x00 00000176: DUP1 00000177: REVERT 00000178: JUMPDEST 00000179: PUSH2 0x0180 0000017c: PUSH2 0x083e 0000017f: JUMP 00000180: JUMPDEST 00000181: PUSH1 0x40 00000183: MLOAD 00000184: DUP1 00000185: DUP1 00000186: PUSH1 0x20 00000188: ADD 00000189: DUP3 0000018a: DUP2 0000018b: SUB 0000018c: DUP3 0000018d: MSTORE 0000018e: DUP4 0000018f: DUP2 00000190: DUP2 00000191: MLOAD 00000192: DUP2 00000193: MSTORE 00000194: PUSH1 0x20 00000196: ADD 00000197: SWAP2 00000198: POP 00000199: DUP1 0000019a: MLOAD 0000019b: SWAP1 0000019c: PUSH1 0x20 0000019e: ADD 0000019f: SWAP1 000001a0: DUP1 000001a1: DUP4 000001a2: DUP4 000001a3: PUSH1 0x00 000001a5: JUMPDEST 000001a6: DUP4 000001a7: DUP2 000001a8: LT 000001a9: ISZERO 000001aa: PUSH2 0x01c0 000001ad: JUMPI 000001ae: DUP1 000001af: DUP3 000001b0: ADD 000001b1: MLOAD 000001b2: DUP2 000001b3: DUP5 000001b4: ADD 000001b5: MSTORE 000001b6: PUSH1 0x20 000001b8: DUP2 000001b9: ADD 000001ba: SWAP1 000001bb: POP 000001bc: PUSH2 0x01a5 000001bf: JUMP 000001c0: JUMPDEST 000001c1: POP 000001c2: POP 000001c3: POP 000001c4: POP 000001c5: SWAP1 000001c6: POP 000001c7: SWAP1 000001c8: DUP2 000001c9: ADD 000001ca: SWAP1 000001cb: PUSH1 0x1f 000001cd: AND 000001ce: DUP1 000001cf: ISZERO 000001d0: PUSH2 0x01ed 000001d3: JUMPI 000001d4: DUP1 000001d5: DUP3 000001d6: SUB 000001d7: DUP1 000001d8: MLOAD 000001d9: PUSH1 0x01 000001db: DUP4 000001dc: PUSH1 0x20 000001de: SUB 000001df: PUSH2 0x0100 000001e2: EXP 000001e3: SUB 000001e4: NOT 000001e5: AND 000001e6: DUP2 000001e7: MSTORE 000001e8: PUSH1 0x20 000001ea: ADD 000001eb: SWAP2 000001ec: POP 000001ed: JUMPDEST 000001ee: POP 000001ef: SWAP3 000001f0: POP 000001f1: POP 000001f2: POP 000001f3: PUSH1 0x40 000001f5: MLOAD 000001f6: DUP1 000001f7: SWAP2 000001f8: SUB 000001f9: SWAP1 000001fa: RETURN 000001fb: JUMPDEST 000001fc: PUSH2 0x0247 000001ff: PUSH1 0x04 00000201: DUP1 00000202: CALLDATASIZE 00000203: SUB 00000204: PUSH1 0x40 00000206: DUP2 00000207: LT 00000208: ISZERO 00000209: PUSH2 0x0211 0000020c: JUMPI 0000020d: PUSH1 0x00 0000020f: DUP1 00000210: REVERT 00000211: JUMPDEST 00000212: DUP2 00000213: ADD 00000214: SWAP1 00000215: DUP1 00000216: DUP1 00000217: CALLDATALOAD 00000218: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000022d: AND 0000022e: SWAP1 0000022f: PUSH1 0x20 00000231: ADD 00000232: SWAP1 00000233: SWAP3 00000234: SWAP2 00000235: SWAP1 00000236: DUP1 00000237: CALLDATALOAD 00000238: SWAP1 00000239: PUSH1 0x20 0000023b: ADD 0000023c: SWAP1 0000023d: SWAP3 0000023e: SWAP2 0000023f: SWAP1 00000240: POP 00000241: POP 00000242: POP 00000243: PUSH2 0x08e0 00000246: JUMP 00000247: JUMPDEST 00000248: PUSH1 0x40 0000024a: MLOAD 0000024b: DUP1 0000024c: DUP3 0000024d: ISZERO 0000024e: ISZERO 0000024f: ISZERO 00000250: ISZERO 00000251: DUP2 00000252: MSTORE 00000253: PUSH1 0x20 00000255: ADD 00000256: SWAP2 00000257: POP 00000258: POP 00000259: PUSH1 0x40 0000025b: MLOAD 0000025c: DUP1 0000025d: SWAP2 0000025e: SUB 0000025f: SWAP1 00000260: RETURN 00000261: JUMPDEST 00000262: PUSH2 0x0269 00000265: PUSH2 0x08fe 00000268: JUMP 00000269: JUMPDEST 0000026a: PUSH1 0x40 0000026c: MLOAD 0000026d: DUP1 0000026e: DUP3 0000026f: DUP2 00000270: MSTORE 00000271: PUSH1 0x20 00000273: ADD 00000274: SWAP2 00000275: POP 00000276: POP 00000277: PUSH1 0x40 00000279: MLOAD 0000027a: DUP1 0000027b: SWAP2 0000027c: SUB 0000027d: SWAP1 0000027e: RETURN 0000027f: JUMPDEST 00000280: PUSH2 0x02eb 00000283: PUSH1 0x04 00000285: DUP1 00000286: CALLDATASIZE 00000287: SUB 00000288: PUSH1 0x60 0000028a: DUP2 0000028b: LT 0000028c: ISZERO 0000028d: PUSH2 0x0295 00000290: JUMPI 00000291: PUSH1 0x00 00000293: DUP1 00000294: REVERT 00000295: JUMPDEST 00000296: DUP2 00000297: ADD 00000298: SWAP1 00000299: DUP1 0000029a: DUP1 0000029b: CALLDATALOAD 0000029c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002b1: AND 000002b2: SWAP1 000002b3: PUSH1 0x20 000002b5: ADD 000002b6: SWAP1 000002b7: SWAP3 000002b8: SWAP2 000002b9: SWAP1 000002ba: DUP1 000002bb: CALLDATALOAD 000002bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002d1: AND 000002d2: SWAP1 000002d3: PUSH1 0x20 000002d5: ADD 000002d6: SWAP1 000002d7: SWAP3 000002d8: SWAP2 000002d9: SWAP1 000002da: DUP1 000002db: CALLDATALOAD 000002dc: SWAP1 000002dd: PUSH1 0x20 000002df: ADD 000002e0: SWAP1 000002e1: SWAP3 000002e2: SWAP2 000002e3: SWAP1 000002e4: POP 000002e5: POP 000002e6: POP 000002e7: PUSH2 0x0908 000002ea: JUMP 000002eb: JUMPDEST 000002ec: PUSH1 0x40 000002ee: MLOAD 000002ef: DUP1 000002f0: DUP3 000002f1: ISZERO 000002f2: ISZERO 000002f3: ISZERO 000002f4: ISZERO 000002f5: DUP2 000002f6: MSTORE 000002f7: PUSH1 0x20 000002f9: ADD 000002fa: SWAP2 000002fb: POP 000002fc: POP 000002fd: PUSH1 0x40 000002ff: MLOAD 00000300: DUP1 00000301: SWAP2 00000302: SUB 00000303: SWAP1 00000304: RETURN 00000305: JUMPDEST 00000306: PUSH2 0x0331 00000309: PUSH1 0x04 0000030b: DUP1 0000030c: CALLDATASIZE 0000030d: SUB 0000030e: PUSH1 0x20 00000310: DUP2 00000311: LT 00000312: ISZERO 00000313: PUSH2 0x031b 00000316: JUMPI 00000317: PUSH1 0x00 00000319: DUP1 0000031a: REVERT 0000031b: JUMPDEST 0000031c: DUP2 0000031d: ADD 0000031e: SWAP1 0000031f: DUP1 00000320: DUP1 00000321: CALLDATALOAD 00000322: SWAP1 00000323: PUSH1 0x20 00000325: ADD 00000326: SWAP1 00000327: SWAP3 00000328: SWAP2 00000329: SWAP1 0000032a: POP 0000032b: POP 0000032c: POP 0000032d: PUSH2 0x09e1 00000330: JUMP 00000331: JUMPDEST 00000332: STOP 00000333: JUMPDEST 00000334: PUSH2 0x033b 00000337: PUSH2 0x0d6b 0000033a: JUMP 0000033b: JUMPDEST 0000033c: PUSH1 0x40 0000033e: MLOAD 0000033f: DUP1 00000340: DUP3 00000341: PUSH1 0xff 00000343: AND 00000344: PUSH1 0xff 00000346: AND 00000347: DUP2 00000348: MSTORE 00000349: PUSH1 0x20 0000034b: ADD 0000034c: SWAP2 0000034d: POP 0000034e: POP 0000034f: PUSH1 0x40 00000351: MLOAD 00000352: DUP1 00000353: SWAP2 00000354: SUB 00000355: SWAP1 00000356: RETURN 00000357: JUMPDEST 00000358: PUSH2 0x03a3 0000035b: PUSH1 0x04 0000035d: DUP1 0000035e: CALLDATASIZE 0000035f: SUB 00000360: PUSH1 0x40 00000362: DUP2 00000363: LT 00000364: ISZERO 00000365: PUSH2 0x036d 00000368: JUMPI 00000369: PUSH1 0x00 0000036b: DUP1 0000036c: REVERT 0000036d: JUMPDEST 0000036e: DUP2 0000036f: ADD 00000370: SWAP1 00000371: DUP1 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: SWAP1 00000395: PUSH1 0x20 00000397: ADD 00000398: SWAP1 00000399: SWAP3 0000039a: SWAP2 0000039b: SWAP1 0000039c: POP 0000039d: POP 0000039e: POP 0000039f: PUSH2 0x0d82 000003a2: JUMP 000003a3: JUMPDEST 000003a4: PUSH1 0x40 000003a6: MLOAD 000003a7: DUP1 000003a8: DUP3 000003a9: ISZERO 000003aa: ISZERO 000003ab: ISZERO 000003ac: ISZERO 000003ad: DUP2 000003ae: MSTORE 000003af: PUSH1 0x20 000003b1: ADD 000003b2: SWAP2 000003b3: POP 000003b4: POP 000003b5: PUSH1 0x40 000003b7: MLOAD 000003b8: DUP1 000003b9: SWAP2 000003ba: SUB 000003bb: SWAP1 000003bc: RETURN 000003bd: JUMPDEST 000003be: PUSH2 0x03e9 000003c1: PUSH1 0x04 000003c3: DUP1 000003c4: CALLDATASIZE 000003c5: SUB 000003c6: PUSH1 0x20 000003c8: DUP2 000003c9: LT 000003ca: ISZERO 000003cb: PUSH2 0x03d3 000003ce: JUMPI 000003cf: PUSH1 0x00 000003d1: DUP1 000003d2: REVERT 000003d3: JUMPDEST 000003d4: DUP2 000003d5: ADD 000003d6: SWAP1 000003d7: DUP1 000003d8: DUP1 000003d9: CALLDATALOAD 000003da: SWAP1 000003db: PUSH1 0x20 000003dd: ADD 000003de: SWAP1 000003df: SWAP3 000003e0: SWAP2 000003e1: SWAP1 000003e2: POP 000003e3: POP 000003e4: POP 000003e5: PUSH2 0x0e35 000003e8: JUMP 000003e9: JUMPDEST 000003ea: STOP 000003eb: JUMPDEST 000003ec: PUSH2 0x03f3 000003ef: PUSH2 0x0f02 000003f2: JUMP 000003f3: JUMPDEST 000003f4: PUSH1 0x40 000003f6: MLOAD 000003f7: DUP1 000003f8: DUP3 000003f9: DUP2 000003fa: MSTORE 000003fb: PUSH1 0x20 000003fd: ADD 000003fe: SWAP2 000003ff: POP 00000400: POP 00000401: PUSH1 0x40 00000403: MLOAD 00000404: DUP1 00000405: SWAP2 00000406: SUB 00000407: SWAP1 00000408: RETURN 00000409: JUMPDEST 0000040a: PUSH2 0x0411 0000040d: PUSH2 0x100b 00000410: JUMP 00000411: JUMPDEST 00000412: PUSH1 0x40 00000414: MLOAD 00000415: DUP1 00000416: DUP3 00000417: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000042c: AND 0000042d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000442: AND 00000443: DUP2 00000444: MSTORE 00000445: PUSH1 0x20 00000447: ADD 00000448: SWAP2 00000449: POP 0000044a: POP 0000044b: PUSH1 0x40 0000044d: MLOAD 0000044e: DUP1 0000044f: SWAP2 00000450: SUB 00000451: SWAP1 00000452: RETURN 00000453: JUMPDEST 00000454: PUSH2 0x045b 00000457: PUSH2 0x1031 0000045a: JUMP 0000045b: JUMPDEST 0000045c: PUSH1 0x40 0000045e: MLOAD 0000045f: DUP1 00000460: DUP3 00000461: DUP2 00000462: MSTORE 00000463: PUSH1 0x20 00000465: ADD 00000466: SWAP2 00000467: POP 00000468: POP 00000469: PUSH1 0x40 0000046b: MLOAD 0000046c: DUP1 0000046d: SWAP2 0000046e: SUB 0000046f: SWAP1 00000470: RETURN 00000471: JUMPDEST 00000472: PUSH2 0x04b3 00000475: PUSH1 0x04 00000477: DUP1 00000478: CALLDATASIZE 00000479: SUB 0000047a: PUSH1 0x20 0000047c: DUP2 0000047d: LT 0000047e: ISZERO 0000047f: PUSH2 0x0487 00000482: JUMPI 00000483: PUSH1 0x00 00000485: DUP1 00000486: REVERT 00000487: JUMPDEST 00000488: DUP2 00000489: ADD 0000048a: SWAP1 0000048b: DUP1 0000048c: DUP1 0000048d: CALLDATALOAD 0000048e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004a3: AND 000004a4: SWAP1 000004a5: PUSH1 0x20 000004a7: ADD 000004a8: SWAP1 000004a9: SWAP3 000004aa: SWAP2 000004ab: SWAP1 000004ac: POP 000004ad: POP 000004ae: POP 000004af: PUSH2 0x1037 000004b2: JUMP 000004b3: JUMPDEST 000004b4: PUSH1 0x40 000004b6: MLOAD 000004b7: DUP1 000004b8: DUP3 000004b9: DUP2 000004ba: MSTORE 000004bb: PUSH1 0x20 000004bd: ADD 000004be: SWAP2 000004bf: POP 000004c0: POP 000004c1: PUSH1 0x40 000004c3: MLOAD 000004c4: DUP1 000004c5: SWAP2 000004c6: SUB 000004c7: SWAP1 000004c8: RETURN 000004c9: JUMPDEST 000004ca: PUSH2 0x04d1 000004cd: PUSH2 0x107f 000004d0: JUMP 000004d1: JUMPDEST 000004d2: PUSH1 0x40 000004d4: MLOAD 000004d5: DUP1 000004d6: DUP3 000004d7: DUP2 000004d8: MSTORE 000004d9: PUSH1 0x20 000004db: ADD 000004dc: SWAP2 000004dd: POP 000004de: POP 000004df: PUSH1 0x40 000004e1: MLOAD 000004e2: DUP1 000004e3: SWAP2 000004e4: SUB 000004e5: SWAP1 000004e6: RETURN 000004e7: JUMPDEST 000004e8: PUSH2 0x0529 000004eb: PUSH1 0x04 000004ed: DUP1 000004ee: CALLDATASIZE 000004ef: SUB 000004f0: PUSH1 0x20 000004f2: DUP2 000004f3: LT 000004f4: ISZERO 000004f5: PUSH2 0x04fd 000004f8: JUMPI 000004f9: PUSH1 0x00 000004fb: DUP1 000004fc: REVERT 000004fd: JUMPDEST 000004fe: DUP2 000004ff: ADD 00000500: SWAP1 00000501: DUP1 00000502: DUP1 00000503: CALLDATALOAD 00000504: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000519: AND 0000051a: SWAP1 0000051b: PUSH1 0x20 0000051d: ADD 0000051e: SWAP1 0000051f: SWAP3 00000520: SWAP2 00000521: SWAP1 00000522: POP 00000523: POP 00000524: POP 00000525: PUSH2 0x10c1 00000528: JUMP 00000529: JUMPDEST 0000052a: STOP 0000052b: JUMPDEST 0000052c: PUSH2 0x0533 0000052f: PUSH2 0x11c8 00000532: JUMP 00000533: JUMPDEST 00000534: PUSH1 0x40 00000536: MLOAD 00000537: DUP1 00000538: DUP1 00000539: PUSH1 0x20 0000053b: ADD 0000053c: DUP3 0000053d: DUP2 0000053e: SUB 0000053f: DUP3 00000540: MSTORE 00000541: DUP4 00000542: DUP2 00000543: DUP2 00000544: MLOAD 00000545: DUP2 00000546: MSTORE 00000547: PUSH1 0x20 00000549: ADD 0000054a: SWAP2 0000054b: POP 0000054c: DUP1 0000054d: MLOAD 0000054e: SWAP1 0000054f: PUSH1 0x20 00000551: ADD 00000552: SWAP1 00000553: DUP1 00000554: DUP4 00000555: DUP4 00000556: PUSH1 0x00 00000558: JUMPDEST 00000559: DUP4 0000055a: DUP2 0000055b: LT 0000055c: ISZERO 0000055d: PUSH2 0x0573 00000560: JUMPI 00000561: DUP1 00000562: DUP3 00000563: ADD 00000564: MLOAD 00000565: DUP2 00000566: DUP5 00000567: ADD 00000568: MSTORE 00000569: PUSH1 0x20 0000056b: DUP2 0000056c: ADD 0000056d: SWAP1 0000056e: POP 0000056f: PUSH2 0x0558 00000572: JUMP 00000573: JUMPDEST 00000574: POP 00000575: POP 00000576: POP 00000577: POP 00000578: SWAP1 00000579: POP 0000057a: SWAP1 0000057b: DUP2 0000057c: ADD 0000057d: SWAP1 0000057e: PUSH1 0x1f 00000580: AND 00000581: DUP1 00000582: ISZERO 00000583: PUSH2 0x05a0 00000586: JUMPI 00000587: DUP1 00000588: DUP3 00000589: SUB 0000058a: DUP1 0000058b: MLOAD 0000058c: PUSH1 0x01 0000058e: DUP4 0000058f: PUSH1 0x20 00000591: SUB 00000592: PUSH2 0x0100 00000595: EXP 00000596: SUB 00000597: NOT 00000598: AND 00000599: DUP2 0000059a: MSTORE 0000059b: PUSH1 0x20 0000059d: ADD 0000059e: SWAP2 0000059f: POP 000005a0: JUMPDEST 000005a1: POP 000005a2: SWAP3 000005a3: POP 000005a4: POP 000005a5: POP 000005a6: PUSH1 0x40 000005a8: MLOAD 000005a9: DUP1 000005aa: SWAP2 000005ab: SUB 000005ac: SWAP1 000005ad: RETURN 000005ae: JUMPDEST 000005af: PUSH2 0x05fa 000005b2: PUSH1 0x04 000005b4: DUP1 000005b5: CALLDATASIZE 000005b6: SUB 000005b7: PUSH1 0x40 000005b9: DUP2 000005ba: LT 000005bb: ISZERO 000005bc: PUSH2 0x05c4 000005bf: JUMPI 000005c0: PUSH1 0x00 000005c2: DUP1 000005c3: REVERT 000005c4: JUMPDEST 000005c5: DUP2 000005c6: ADD 000005c7: SWAP1 000005c8: DUP1 000005c9: DUP1 000005ca: CALLDATALOAD 000005cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005e0: AND 000005e1: SWAP1 000005e2: PUSH1 0x20 000005e4: ADD 000005e5: SWAP1 000005e6: SWAP3 000005e7: SWAP2 000005e8: SWAP1 000005e9: DUP1 000005ea: CALLDATALOAD 000005eb: SWAP1 000005ec: PUSH1 0x20 000005ee: ADD 000005ef: SWAP1 000005f0: SWAP3 000005f1: SWAP2 000005f2: SWAP1 000005f3: POP 000005f4: POP 000005f5: POP 000005f6: PUSH2 0x126a 000005f9: JUMP 000005fa: JUMPDEST 000005fb: PUSH1 0x40 000005fd: MLOAD 000005fe: DUP1 000005ff: DUP3 00000600: ISZERO 00000601: ISZERO 00000602: ISZERO 00000603: ISZERO 00000604: DUP2 00000605: MSTORE 00000606: PUSH1 0x20 00000608: ADD 00000609: SWAP2 0000060a: POP 0000060b: POP 0000060c: PUSH1 0x40 0000060e: MLOAD 0000060f: DUP1 00000610: SWAP2 00000611: SUB 00000612: SWAP1 00000613: RETURN 00000614: JUMPDEST 00000615: PUSH2 0x0660 00000618: PUSH1 0x04 0000061a: DUP1 0000061b: CALLDATASIZE 0000061c: SUB 0000061d: PUSH1 0x40 0000061f: DUP2 00000620: LT 00000621: ISZERO 00000622: PUSH2 0x062a 00000625: JUMPI 00000626: PUSH1 0x00 00000628: DUP1 00000629: REVERT 0000062a: JUMPDEST 0000062b: DUP2 0000062c: ADD 0000062d: SWAP1 0000062e: DUP1 0000062f: DUP1 00000630: CALLDATALOAD 00000631: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000646: AND 00000647: SWAP1 00000648: PUSH1 0x20 0000064a: ADD 0000064b: SWAP1 0000064c: SWAP3 0000064d: SWAP2 0000064e: SWAP1 0000064f: DUP1 00000650: CALLDATALOAD 00000651: SWAP1 00000652: PUSH1 0x20 00000654: ADD 00000655: SWAP1 00000656: SWAP3 00000657: SWAP2 00000658: SWAP1 00000659: POP 0000065a: POP 0000065b: POP 0000065c: PUSH2 0x1337 0000065f: JUMP 00000660: JUMPDEST 00000661: PUSH1 0x40 00000663: MLOAD 00000664: DUP1 00000665: DUP3 00000666: ISZERO 00000667: ISZERO 00000668: ISZERO 00000669: ISZERO 0000066a: DUP2 0000066b: MSTORE 0000066c: PUSH1 0x20 0000066e: ADD 0000066f: SWAP2 00000670: POP 00000671: POP 00000672: PUSH1 0x40 00000674: MLOAD 00000675: DUP1 00000676: SWAP2 00000677: SUB 00000678: SWAP1 00000679: RETURN 0000067a: JUMPDEST 0000067b: PUSH2 0x06bc 0000067e: PUSH1 0x04 00000680: DUP1 00000681: CALLDATASIZE 00000682: SUB 00000683: PUSH1 0x20 00000685: DUP2 00000686: LT 00000687: ISZERO 00000688: PUSH2 0x0690 0000068b: JUMPI 0000068c: PUSH1 0x00 0000068e: DUP1 0000068f: REVERT 00000690: JUMPDEST 00000691: DUP2 00000692: ADD 00000693: SWAP1 00000694: DUP1 00000695: DUP1 00000696: CALLDATALOAD 00000697: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006ac: AND 000006ad: SWAP1 000006ae: PUSH1 0x20 000006b0: ADD 000006b1: SWAP1 000006b2: SWAP3 000006b3: SWAP2 000006b4: SWAP1 000006b5: POP 000006b6: POP 000006b7: POP 000006b8: PUSH2 0x1355 000006bb: JUMP 000006bc: JUMPDEST 000006bd: STOP 000006be: JUMPDEST 000006bf: PUSH2 0x06c6 000006c2: PUSH2 0x145c 000006c5: JUMP 000006c6: JUMPDEST 000006c7: PUSH1 0x40 000006c9: MLOAD 000006ca: DUP1 000006cb: DUP3 000006cc: DUP2 000006cd: MSTORE 000006ce: PUSH1 0x20 000006d0: ADD 000006d1: SWAP2 000006d2: POP 000006d3: POP 000006d4: PUSH1 0x40 000006d6: MLOAD 000006d7: DUP1 000006d8: SWAP2 000006d9: SUB 000006da: SWAP1 000006db: RETURN 000006dc: JUMPDEST 000006dd: PUSH2 0x0708 000006e0: PUSH1 0x04 000006e2: DUP1 000006e3: CALLDATASIZE 000006e4: SUB 000006e5: PUSH1 0x20 000006e7: DUP2 000006e8: LT 000006e9: ISZERO 000006ea: PUSH2 0x06f2 000006ed: JUMPI 000006ee: PUSH1 0x00 000006f0: DUP1 000006f1: REVERT 000006f2: JUMPDEST 000006f3: DUP2 000006f4: ADD 000006f5: SWAP1 000006f6: DUP1 000006f7: DUP1 000006f8: CALLDATALOAD 000006f9: SWAP1 000006fa: PUSH1 0x20 000006fc: ADD 000006fd: SWAP1 000006fe: SWAP3 000006ff: SWAP2 00000700: SWAP1 00000701: POP 00000702: POP 00000703: POP 00000704: PUSH2 0x164a 00000707: JUMP 00000708: JUMPDEST 00000709: STOP 0000070a: JUMPDEST 0000070b: PUSH2 0x0712 0000070e: PUSH2 0x16f9 00000711: JUMP 00000712: JUMPDEST 00000713: STOP 00000714: JUMPDEST 00000715: PUSH2 0x0776 00000718: PUSH1 0x04 0000071a: DUP1 0000071b: CALLDATASIZE 0000071c: SUB 0000071d: PUSH1 0x40 0000071f: DUP2 00000720: LT 00000721: ISZERO 00000722: PUSH2 0x072a 00000725: JUMPI 00000726: PUSH1 0x00 00000728: DUP1 00000729: REVERT 0000072a: JUMPDEST 0000072b: DUP2 0000072c: ADD 0000072d: SWAP1 0000072e: DUP1 0000072f: DUP1 00000730: CALLDATALOAD 00000731: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000746: AND 00000747: SWAP1 00000748: PUSH1 0x20 0000074a: ADD 0000074b: SWAP1 0000074c: SWAP3 0000074d: SWAP2 0000074e: SWAP1 0000074f: DUP1 00000750: CALLDATALOAD 00000751: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000766: AND 00000767: SWAP1 00000768: PUSH1 0x20 0000076a: ADD 0000076b: SWAP1 0000076c: SWAP3 0000076d: SWAP2 0000076e: SWAP1 0000076f: POP 00000770: POP 00000771: POP 00000772: PUSH2 0x185a 00000775: JUMP 00000776: JUMPDEST 00000777: PUSH1 0x40 00000779: MLOAD 0000077a: DUP1 0000077b: DUP3 0000077c: DUP2 0000077d: MSTORE 0000077e: PUSH1 0x20 00000780: ADD 00000781: SWAP2 00000782: POP 00000783: POP 00000784: PUSH1 0x40 00000786: MLOAD 00000787: DUP1 00000788: SWAP2 00000789: SUB 0000078a: SWAP1 0000078b: RETURN 0000078c: JUMPDEST 0000078d: PUSH2 0x0794 00000790: PUSH2 0x18e1 00000793: JUMP 00000794: JUMPDEST 00000795: PUSH1 0x40 00000797: MLOAD 00000798: DUP1 00000799: DUP3 0000079a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007af: AND 000007b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007c5: AND 000007c6: DUP2 000007c7: MSTORE 000007c8: PUSH1 0x20 000007ca: ADD 000007cb: SWAP2 000007cc: POP 000007cd: POP 000007ce: PUSH1 0x40 000007d0: MLOAD 000007d1: DUP1 000007d2: SWAP2 000007d3: SUB 000007d4: SWAP1 000007d5: RETURN 000007d6: JUMPDEST 000007d7: PUSH2 0x07de 000007da: PUSH2 0x1907 000007dd: JUMP 000007de: JUMPDEST 000007df: PUSH1 0x40 000007e1: MLOAD 000007e2: DUP1 000007e3: DUP3 000007e4: DUP2 000007e5: MSTORE 000007e6: PUSH1 0x20 000007e8: ADD 000007e9: SWAP2 000007ea: POP 000007eb: POP 000007ec: PUSH1 0x40 000007ee: MLOAD 000007ef: DUP1 000007f0: SWAP2 000007f1: SUB 000007f2: SWAP1 000007f3: RETURN 000007f4: JUMPDEST 000007f5: PUSH2 0x07fc 000007f8: PUSH2 0x190d 000007fb: JUMP 000007fc: JUMPDEST 000007fd: PUSH1 0x40 000007ff: MLOAD 00000800: DUP1 00000801: DUP3 00000802: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000817: AND 00000818: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000082d: AND 0000082e: DUP2 0000082f: MSTORE 00000830: PUSH1 0x20 00000832: ADD 00000833: SWAP2 00000834: POP 00000835: POP 00000836: PUSH1 0x40 00000838: MLOAD 00000839: DUP1 0000083a: SWAP2 0000083b: SUB 0000083c: SWAP1 0000083d: RETURN 0000083e: JUMPDEST 0000083f: PUSH1 0x60 00000841: PUSH1 0x03 00000843: DUP1 00000844: SLOAD 00000845: PUSH1 0x01 00000847: DUP2 00000848: PUSH1 0x01 0000084a: AND 0000084b: ISZERO 0000084c: PUSH2 0x0100 0000084f: MUL 00000850: SUB 00000851: AND 00000852: PUSH1 0x02 00000854: SWAP1 00000855: DIV 00000856: DUP1 00000857: PUSH1 0x1f 00000859: ADD 0000085a: PUSH1 0x20 0000085c: DUP1 0000085d: SWAP2 0000085e: DIV 0000085f: MUL 00000860: PUSH1 0x20 00000862: ADD 00000863: PUSH1 0x40 00000865: MLOAD 00000866: SWAP1 00000867: DUP2 00000868: ADD 00000869: PUSH1 0x40 0000086b: MSTORE 0000086c: DUP1 0000086d: SWAP3 0000086e: SWAP2 0000086f: SWAP1 00000870: DUP2 00000871: DUP2 00000872: MSTORE 00000873: PUSH1 0x20 00000875: ADD 00000876: DUP3 00000877: DUP1 00000878: SLOAD 00000879: PUSH1 0x01 0000087b: DUP2 0000087c: PUSH1 0x01 0000087e: AND 0000087f: ISZERO 00000880: PUSH2 0x0100 00000883: MUL 00000884: SUB 00000885: AND 00000886: PUSH1 0x02 00000888: SWAP1 00000889: DIV 0000088a: DUP1 0000088b: ISZERO 0000088c: PUSH2 0x08d6 0000088f: JUMPI 00000890: DUP1 00000891: PUSH1 0x1f 00000893: LT 00000894: PUSH2 0x08ab 00000897: JUMPI 00000898: PUSH2 0x0100 0000089b: DUP1 0000089c: DUP4 0000089d: SLOAD 0000089e: DIV 0000089f: MUL 000008a0: DUP4 000008a1: MSTORE 000008a2: SWAP2 000008a3: PUSH1 0x20 000008a5: ADD 000008a6: SWAP2 000008a7: PUSH2 0x08d6 000008aa: JUMP 000008ab: JUMPDEST 000008ac: DUP3 000008ad: ADD 000008ae: SWAP2 000008af: SWAP1 000008b0: PUSH1 0x00 000008b2: MSTORE 000008b3: PUSH1 0x20 000008b5: PUSH1 0x00 000008b7: KECCAK256 000008b8: SWAP1 000008b9: JUMPDEST 000008ba: DUP2 000008bb: SLOAD 000008bc: DUP2 000008bd: MSTORE 000008be: SWAP1 000008bf: PUSH1 0x01 000008c1: ADD 000008c2: SWAP1 000008c3: PUSH1 0x20 000008c5: ADD 000008c6: DUP1 000008c7: DUP4 000008c8: GT 000008c9: PUSH2 0x08b9 000008cc: JUMPI 000008cd: DUP3 000008ce: SWAP1 000008cf: SUB 000008d0: PUSH1 0x1f 000008d2: AND 000008d3: DUP3 000008d4: ADD 000008d5: SWAP2 000008d6: JUMPDEST 000008d7: POP 000008d8: POP 000008d9: POP 000008da: POP 000008db: POP 000008dc: SWAP1 000008dd: POP 000008de: SWAP1 000008df: JUMP 000008e0: JUMPDEST 000008e1: PUSH1 0x00 000008e3: PUSH2 0x08f4 000008e6: PUSH2 0x08ed 000008e9: PUSH2 0x1933 000008ec: JUMP 000008ed: JUMPDEST 000008ee: DUP5 000008ef: DUP5 000008f0: PUSH2 0x193b 000008f3: JUMP 000008f4: JUMPDEST 000008f5: PUSH1 0x01 000008f7: SWAP1 000008f8: POP 000008f9: SWAP3 000008fa: SWAP2 000008fb: POP 000008fc: POP 000008fd: JUMP 000008fe: JUMPDEST 000008ff: PUSH1 0x00 00000901: PUSH1 0x02 00000903: SLOAD 00000904: SWAP1 00000905: POP 00000906: SWAP1 00000907: JUMP 00000908: JUMPDEST 00000909: PUSH1 0x00 0000090b: PUSH2 0x0915 0000090e: DUP5 0000090f: DUP5 00000910: DUP5 00000911: PUSH2 0x1b32 00000914: JUMP 00000915: JUMPDEST 00000916: PUSH2 0x09d6 00000919: DUP5 0000091a: PUSH2 0x0921 0000091d: PUSH2 0x1933 00000920: JUMP 00000921: JUMPDEST 00000922: PUSH2 0x09d1 00000925: DUP6 00000926: PUSH1 0x40 00000928: MLOAD 00000929: DUP1 0000092a: PUSH1 0x60 0000092c: ADD 0000092d: PUSH1 0x40 0000092f: MSTORE 00000930: DUP1 00000931: PUSH1 0x28 00000933: DUP2 00000934: MSTORE 00000935: PUSH1 0x20 00000937: ADD 00000938: PUSH2 0x299f 0000093b: PUSH1 0x28 0000093d: SWAP2 0000093e: CODECOPY 0000093f: PUSH1 0x01 00000941: PUSH1 0x00 00000943: DUP12 00000944: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000959: AND 0000095a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000096f: AND 00000970: DUP2 00000971: MSTORE 00000972: PUSH1 0x20 00000974: ADD 00000975: SWAP1 00000976: DUP2 00000977: MSTORE 00000978: PUSH1 0x20 0000097a: ADD 0000097b: PUSH1 0x00 0000097d: KECCAK256 0000097e: PUSH1 0x00 00000980: PUSH2 0x0987 00000983: PUSH2 0x1933 00000986: JUMP 00000987: JUMPDEST 00000988: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000099d: AND 0000099e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009b3: AND 000009b4: DUP2 000009b5: MSTORE 000009b6: PUSH1 0x20 000009b8: ADD 000009b9: SWAP1 000009ba: DUP2 000009bb: MSTORE 000009bc: PUSH1 0x20 000009be: ADD 000009bf: PUSH1 0x00 000009c1: KECCAK256 000009c2: SLOAD 000009c3: PUSH2 0x1de8 000009c6: SWAP1 000009c7: SWAP3 000009c8: SWAP2 000009c9: SWAP1 000009ca: PUSH4 0xffffffff 000009cf: AND 000009d0: JUMP 000009d1: JUMPDEST 000009d2: PUSH2 0x193b 000009d5: JUMP 000009d6: JUMPDEST 000009d7: PUSH1 0x01 000009d9: SWAP1 000009da: POP 000009db: SWAP4 000009dc: SWAP3 000009dd: POP 000009de: POP 000009df: POP 000009e0: JUMP 000009e1: JUMPDEST 000009e2: PUSH1 0x00 000009e4: PUSH2 0x0a16 000009e7: PUSH2 0x09ee 000009ea: PUSH2 0x08fe 000009ed: JUMP 000009ee: JUMPDEST 000009ef: PUSH2 0x0a08 000009f2: DUP5 000009f3: PUSH2 0x09fa 000009f6: PUSH2 0x145c 000009f9: JUMP 000009fa: JUMPDEST 000009fb: PUSH2 0x1ea8 000009fe: SWAP1 000009ff: SWAP2 00000a00: SWAP1 00000a01: PUSH4 0xffffffff 00000a06: AND 00000a07: JUMP 00000a08: JUMPDEST 00000a09: PUSH2 0x1f2e 00000a0c: SWAP1 00000a0d: SWAP2 00000a0e: SWAP1 00000a0f: PUSH4 0xffffffff 00000a14: AND 00000a15: JUMP 00000a16: JUMPDEST 00000a17: SWAP1 00000a18: POP 00000a19: PUSH2 0x0a22 00000a1c: CALLER 00000a1d: DUP4 00000a1e: PUSH2 0x1f78 00000a21: JUMP 00000a22: JUMPDEST 00000a23: PUSH1 0x00 00000a25: PUSH1 0x05 00000a27: PUSH1 0x01 00000a29: SWAP1 00000a2a: SLOAD 00000a2b: SWAP1 00000a2c: PUSH2 0x0100 00000a2f: EXP 00000a30: SWAP1 00000a31: DIV 00000a32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a47: AND 00000a48: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a5d: AND 00000a5e: PUSH4 0x70a08231 00000a63: ADDRESS 00000a64: PUSH1 0x40 00000a66: MLOAD 00000a67: DUP3 00000a68: PUSH4 0xffffffff 00000a6d: AND 00000a6e: PUSH1 0xe0 00000a70: SHL 00000a71: DUP2 00000a72: MSTORE 00000a73: PUSH1 0x04 00000a75: ADD 00000a76: DUP1 00000a77: DUP3 00000a78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a8d: AND 00000a8e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000aa3: AND 00000aa4: DUP2 00000aa5: MSTORE 00000aa6: PUSH1 0x20 00000aa8: ADD 00000aa9: SWAP2 00000aaa: POP 00000aab: POP 00000aac: PUSH1 0x20 00000aae: PUSH1 0x40 00000ab0: MLOAD 00000ab1: DUP1 00000ab2: DUP4 00000ab3: SUB 00000ab4: DUP2 00000ab5: DUP7 00000ab6: DUP1 00000ab7: EXTCODESIZE 00000ab8: ISZERO 00000ab9: DUP1 00000aba: ISZERO 00000abb: PUSH2 0x0ac3 00000abe: JUMPI 00000abf: PUSH1 0x00 00000ac1: DUP1 00000ac2: REVERT 00000ac3: JUMPDEST 00000ac4: POP 00000ac5: GAS 00000ac6: STATICCALL 00000ac7: ISZERO 00000ac8: DUP1 00000ac9: ISZERO 00000aca: PUSH2 0x0ad7 00000acd: JUMPI 00000ace: RETURNDATASIZE 00000acf: PUSH1 0x00 00000ad1: DUP1 00000ad2: RETURNDATACOPY 00000ad3: RETURNDATASIZE 00000ad4: PUSH1 0x00 00000ad6: REVERT 00000ad7: JUMPDEST 00000ad8: POP 00000ad9: POP 00000ada: POP 00000adb: POP 00000adc: PUSH1 0x40 00000ade: MLOAD 00000adf: RETURNDATASIZE 00000ae0: PUSH1 0x20 00000ae2: DUP2 00000ae3: LT 00000ae4: ISZERO 00000ae5: PUSH2 0x0aed 00000ae8: JUMPI 00000ae9: PUSH1 0x00 00000aeb: DUP1 00000aec: REVERT 00000aed: JUMPDEST 00000aee: DUP2 00000aef: ADD 00000af0: SWAP1 00000af1: DUP1 00000af2: DUP1 00000af3: MLOAD 00000af4: SWAP1 00000af5: PUSH1 0x20 00000af7: ADD 00000af8: SWAP1 00000af9: SWAP3 00000afa: SWAP2 00000afb: SWAP1 00000afc: POP 00000afd: POP 00000afe: POP 00000aff: SWAP1 00000b00: POP 00000b01: DUP2 00000b02: DUP2 00000b03: LT 00000b04: ISZERO 00000b05: PUSH2 0x0d19 00000b08: JUMPI 00000b09: PUSH1 0x00 00000b0b: PUSH2 0x0b1d 00000b0e: DUP3 00000b0f: DUP5 00000b10: PUSH2 0x2130 00000b13: SWAP1 00000b14: SWAP2 00000b15: SWAP1 00000b16: PUSH4 0xffffffff 00000b1b: AND 00000b1c: JUMP 00000b1d: JUMPDEST 00000b1e: SWAP1 00000b1f: POP 00000b20: PUSH1 0x08 00000b22: PUSH1 0x00 00000b24: SWAP1 00000b25: SLOAD 00000b26: SWAP1 00000b27: PUSH2 0x0100 00000b2a: EXP 00000b2b: SWAP1 00000b2c: DIV 00000b2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b42: AND 00000b43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b58: AND 00000b59: PUSH4 0xf3fef3a3 00000b5e: PUSH1 0x05 00000b60: PUSH1 0x01 00000b62: SWAP1 00000b63: SLOAD 00000b64: SWAP1 00000b65: PUSH2 0x0100 00000b68: EXP 00000b69: SWAP1 00000b6a: DIV 00000b6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b80: AND 00000b81: DUP4 00000b82: PUSH1 0x40 00000b84: MLOAD 00000b85: DUP4 00000b86: PUSH4 0xffffffff 00000b8b: AND 00000b8c: PUSH1 0xe0 00000b8e: SHL 00000b8f: DUP2 00000b90: MSTORE 00000b91: PUSH1 0x04 00000b93: ADD 00000b94: DUP1 00000b95: DUP4 00000b96: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bab: AND 00000bac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bc1: AND 00000bc2: DUP2 00000bc3: MSTORE 00000bc4: PUSH1 0x20 00000bc6: ADD 00000bc7: DUP3 00000bc8: DUP2 00000bc9: MSTORE 00000bca: PUSH1 0x20 00000bcc: ADD 00000bcd: SWAP3 00000bce: POP 00000bcf: POP 00000bd0: POP 00000bd1: PUSH1 0x00 00000bd3: PUSH1 0x40 00000bd5: MLOAD 00000bd6: DUP1 00000bd7: DUP4 00000bd8: SUB 00000bd9: DUP2 00000bda: PUSH1 0x00 00000bdc: DUP8 00000bdd: DUP1 00000bde: EXTCODESIZE 00000bdf: ISZERO 00000be0: DUP1 00000be1: ISZERO 00000be2: PUSH2 0x0bea 00000be5: JUMPI 00000be6: PUSH1 0x00 00000be8: DUP1 00000be9: REVERT 00000bea: JUMPDEST 00000beb: POP 00000bec: GAS 00000bed: CALL 00000bee: ISZERO 00000bef: DUP1 00000bf0: ISZERO 00000bf1: PUSH2 0x0bfe 00000bf4: JUMPI 00000bf5: RETURNDATASIZE 00000bf6: PUSH1 0x00 00000bf8: DUP1 00000bf9: RETURNDATACOPY 00000bfa: RETURNDATASIZE 00000bfb: PUSH1 0x00 00000bfd: REVERT 00000bfe: JUMPDEST 00000bff: POP 00000c00: POP 00000c01: POP 00000c02: POP 00000c03: PUSH1 0x00 00000c05: PUSH1 0x05 00000c07: PUSH1 0x01 00000c09: SWAP1 00000c0a: SLOAD 00000c0b: SWAP1 00000c0c: PUSH2 0x0100 00000c0f: EXP 00000c10: SWAP1 00000c11: DIV 00000c12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c27: AND 00000c28: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c3d: AND 00000c3e: PUSH4 0x70a08231 00000c43: ADDRESS 00000c44: PUSH1 0x40 00000c46: MLOAD 00000c47: DUP3 00000c48: PUSH4 0xffffffff 00000c4d: AND 00000c4e: PUSH1 0xe0 00000c50: SHL 00000c51: DUP2 00000c52: MSTORE 00000c53: PUSH1 0x04 00000c55: ADD 00000c56: DUP1 00000c57: DUP3 00000c58: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c6d: AND 00000c6e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c83: AND 00000c84: DUP2 00000c85: MSTORE 00000c86: PUSH1 0x20 00000c88: ADD 00000c89: SWAP2 00000c8a: POP 00000c8b: POP 00000c8c: PUSH1 0x20 00000c8e: PUSH1 0x40 00000c90: MLOAD 00000c91: DUP1 00000c92: DUP4 00000c93: SUB 00000c94: DUP2 00000c95: DUP7 00000c96: DUP1 00000c97: EXTCODESIZE 00000c98: ISZERO 00000c99: DUP1 00000c9a: ISZERO 00000c9b: PUSH2 0x0ca3 00000c9e: JUMPI 00000c9f: PUSH1 0x00 00000ca1: DUP1 00000ca2: REVERT 00000ca3: JUMPDEST 00000ca4: POP 00000ca5: GAS 00000ca6: STATICCALL 00000ca7: ISZERO 00000ca8: DUP1 00000ca9: ISZERO 00000caa: PUSH2 0x0cb7 00000cad: JUMPI 00000cae: RETURNDATASIZE 00000caf: PUSH1 0x00 00000cb1: DUP1 00000cb2: RETURNDATACOPY 00000cb3: RETURNDATASIZE 00000cb4: PUSH1 0x00 00000cb6: REVERT 00000cb7: JUMPDEST 00000cb8: POP 00000cb9: POP 00000cba: POP 00000cbb: POP 00000cbc: PUSH1 0x40 00000cbe: MLOAD 00000cbf: RETURNDATASIZE 00000cc0: PUSH1 0x20 00000cc2: DUP2 00000cc3: LT 00000cc4: ISZERO 00000cc5: PUSH2 0x0ccd 00000cc8: JUMPI 00000cc9: PUSH1 0x00 00000ccb: DUP1 00000ccc: REVERT 00000ccd: JUMPDEST 00000cce: DUP2 00000ccf: ADD 00000cd0: SWAP1 00000cd1: DUP1 00000cd2: DUP1 00000cd3: MLOAD 00000cd4: SWAP1 00000cd5: PUSH1 0x20 00000cd7: ADD 00000cd8: SWAP1 00000cd9: SWAP3 00000cda: SWAP2 00000cdb: SWAP1 00000cdc: POP 00000cdd: POP 00000cde: POP 00000cdf: SWAP1 00000ce0: POP 00000ce1: PUSH1 0x00 00000ce3: PUSH2 0x0cf5 00000ce6: DUP5 00000ce7: DUP4 00000ce8: PUSH2 0x2130 00000ceb: SWAP1 00000cec: SWAP2 00000ced: SWAP1 00000cee: PUSH4 0xffffffff 00000cf3: AND 00000cf4: JUMP 00000cf5: JUMPDEST 00000cf6: SWAP1 00000cf7: POP 00000cf8: DUP3 00000cf9: DUP2 00000cfa: LT 00000cfb: ISZERO 00000cfc: PUSH2 0x0d15 00000cff: JUMPI 00000d00: PUSH2 0x0d12 00000d03: DUP2 00000d04: DUP6 00000d05: PUSH2 0x217a 00000d08: SWAP1 00000d09: SWAP2 00000d0a: SWAP1 00000d0b: PUSH4 0xffffffff 00000d10: AND 00000d11: JUMP 00000d12: JUMPDEST 00000d13: SWAP5 00000d14: POP 00000d15: JUMPDEST 00000d16: POP 00000d17: POP 00000d18: POP 00000d19: JUMPDEST 00000d1a: PUSH2 0x0d66 00000d1d: CALLER 00000d1e: DUP4 00000d1f: PUSH1 0x05 00000d21: PUSH1 0x01 00000d23: SWAP1 00000d24: SLOAD 00000d25: SWAP1 00000d26: PUSH2 0x0100 00000d29: EXP 00000d2a: SWAP1 00000d2b: DIV 00000d2c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d41: AND 00000d42: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d57: AND 00000d58: PUSH2 0x2202 00000d5b: SWAP1 00000d5c: SWAP3 00000d5d: SWAP2 00000d5e: SWAP1 00000d5f: PUSH4 0xffffffff 00000d64: AND 00000d65: JUMP 00000d66: JUMPDEST 00000d67: POP 00000d68: POP 00000d69: POP 00000d6a: JUMP 00000d6b: JUMPDEST 00000d6c: PUSH1 0x00 00000d6e: PUSH1 0x05 00000d70: PUSH1 0x00 00000d72: SWAP1 00000d73: SLOAD 00000d74: SWAP1 00000d75: PUSH2 0x0100 00000d78: EXP 00000d79: SWAP1 00000d7a: DIV 00000d7b: PUSH1 0xff 00000d7d: AND 00000d7e: SWAP1 00000d7f: POP 00000d80: SWAP1 00000d81: JUMP 00000d82: JUMPDEST 00000d83: PUSH1 0x00 00000d85: PUSH2 0x0e2b 00000d88: PUSH2 0x0d8f 00000d8b: PUSH2 0x1933 00000d8e: JUMP 00000d8f: JUMPDEST 00000d90: DUP5 00000d91: PUSH2 0x0e26 00000d94: DUP6 00000d95: PUSH1 0x01 00000d97: PUSH1 0x00 00000d99: PUSH2 0x0da0 00000d9c: PUSH2 0x1933 00000d9f: JUMP 00000da0: JUMPDEST 00000da1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000db6: AND 00000db7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dcc: AND 00000dcd: DUP2 00000dce: MSTORE 00000dcf: PUSH1 0x20 00000dd1: ADD 00000dd2: SWAP1 00000dd3: DUP2 00000dd4: MSTORE 00000dd5: PUSH1 0x20 00000dd7: ADD 00000dd8: PUSH1 0x00 00000dda: KECCAK256 00000ddb: PUSH1 0x00 00000ddd: DUP10 00000dde: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000df3: AND 00000df4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e09: AND 00000e0a: DUP2 00000e0b: MSTORE 00000e0c: PUSH1 0x20 00000e0e: ADD 00000e0f: SWAP1 00000e10: DUP2 00000e11: MSTORE 00000e12: PUSH1 0x20 00000e14: ADD 00000e15: PUSH1 0x00 00000e17: KECCAK256 00000e18: SLOAD 00000e19: PUSH2 0x217a 00000e1c: SWAP1 00000e1d: SWAP2 00000e1e: SWAP1 00000e1f: PUSH4 0xffffffff 00000e24: AND 00000e25: JUMP 00000e26: JUMPDEST 00000e27: PUSH2 0x193b 00000e2a: JUMP 00000e2b: JUMPDEST 00000e2c: PUSH1 0x01 00000e2e: SWAP1 00000e2f: POP 00000e30: SWAP3 00000e31: SWAP2 00000e32: POP 00000e33: POP 00000e34: JUMP 00000e35: JUMPDEST 00000e36: PUSH1 0x07 00000e38: PUSH1 0x00 00000e3a: SWAP1 00000e3b: SLOAD 00000e3c: SWAP1 00000e3d: PUSH2 0x0100 00000e40: EXP 00000e41: SWAP1 00000e42: DIV 00000e43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e58: AND 00000e59: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e6e: AND 00000e6f: CALLER 00000e70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e85: AND 00000e86: EQ 00000e87: PUSH2 0x0ef8 00000e8a: JUMPI 00000e8b: PUSH1 0x40 00000e8d: MLOAD 00000e8e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000eaf: DUP2 00000eb0: MSTORE 00000eb1: PUSH1 0x04 00000eb3: ADD 00000eb4: DUP1 00000eb5: DUP1 00000eb6: PUSH1 0x20 00000eb8: ADD 00000eb9: DUP3 00000eba: DUP2 00000ebb: SUB 00000ebc: DUP3 00000ebd: MSTORE 00000ebe: PUSH1 0x0b 00000ec0: DUP2 00000ec1: MSTORE 00000ec2: PUSH1 0x20 00000ec4: ADD 00000ec5: DUP1 00000ec6: PUSH32 0x21676f7665726e616e6365000000000000000000000000000000000000000000 00000ee7: DUP2 00000ee8: MSTORE 00000ee9: POP 00000eea: PUSH1 0x20 00000eec: ADD 00000eed: SWAP2 00000eee: POP 00000eef: POP 00000ef0: PUSH1 0x40 00000ef2: MLOAD 00000ef3: DUP1 00000ef4: SWAP2 00000ef5: SUB 00000ef6: SWAP1 00000ef7: REVERT 00000ef8: JUMPDEST 00000ef9: DUP1 00000efa: PUSH1 0x06 00000efc: DUP2 00000efd: SWAP1 00000efe: SSTORE 00000eff: POP 00000f00: POP 00000f01: JUMP 00000f02: JUMPDEST 00000f03: PUSH1 0x00 00000f05: PUSH2 0x1006 00000f08: PUSH2 0x2710 00000f0b: PUSH2 0x0ff8 00000f0e: PUSH1 0x06 00000f10: SLOAD 00000f11: PUSH1 0x05 00000f13: PUSH1 0x01 00000f15: SWAP1 00000f16: SLOAD 00000f17: SWAP1 00000f18: PUSH2 0x0100 00000f1b: EXP 00000f1c: SWAP1 00000f1d: DIV 00000f1e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f33: AND 00000f34: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f49: AND 00000f4a: PUSH4 0x70a08231 00000f4f: ADDRESS 00000f50: PUSH1 0x40 00000f52: MLOAD 00000f53: DUP3 00000f54: PUSH4 0xffffffff 00000f59: AND 00000f5a: PUSH1 0xe0 00000f5c: SHL 00000f5d: DUP2 00000f5e: MSTORE 00000f5f: PUSH1 0x04 00000f61: ADD 00000f62: DUP1 00000f63: DUP3 00000f64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f79: AND 00000f7a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f8f: AND 00000f90: DUP2 00000f91: MSTORE 00000f92: PUSH1 0x20 00000f94: ADD 00000f95: SWAP2 00000f96: POP 00000f97: POP 00000f98: PUSH1 0x20 00000f9a: PUSH1 0x40 00000f9c: MLOAD 00000f9d: DUP1 00000f9e: DUP4 00000f9f: SUB 00000fa0: DUP2 00000fa1: DUP7 00000fa2: DUP1 00000fa3: EXTCODESIZE 00000fa4: ISZERO 00000fa5: DUP1 00000fa6: ISZERO 00000fa7: PUSH2 0x0faf 00000faa: JUMPI 00000fab: PUSH1 0x00 00000fad: DUP1 00000fae: REVERT 00000faf: JUMPDEST 00000fb0: POP 00000fb1: GAS 00000fb2: STATICCALL 00000fb3: ISZERO 00000fb4: DUP1 00000fb5: ISZERO 00000fb6: PUSH2 0x0fc3 00000fb9: JUMPI 00000fba: RETURNDATASIZE 00000fbb: PUSH1 0x00 00000fbd: DUP1 00000fbe: RETURNDATACOPY 00000fbf: RETURNDATASIZE 00000fc0: PUSH1 0x00 00000fc2: REVERT 00000fc3: JUMPDEST 00000fc4: POP 00000fc5: POP 00000fc6: POP 00000fc7: POP 00000fc8: PUSH1 0x40 00000fca: MLOAD 00000fcb: RETURNDATASIZE 00000fcc: PUSH1 0x20 00000fce: DUP2 00000fcf: LT 00000fd0: ISZERO 00000fd1: PUSH2 0x0fd9 00000fd4: JUMPI 00000fd5: PUSH1 0x00 00000fd7: DUP1 00000fd8: REVERT 00000fd9: JUMPDEST 00000fda: DUP2 00000fdb: ADD 00000fdc: SWAP1 00000fdd: DUP1 00000fde: DUP1 00000fdf: MLOAD 00000fe0: SWAP1 00000fe1: PUSH1 0x20 00000fe3: ADD 00000fe4: SWAP1 00000fe5: SWAP3 00000fe6: SWAP2 00000fe7: SWAP1 00000fe8: POP 00000fe9: POP 00000fea: POP 00000feb: PUSH2 0x1ea8 00000fee: SWAP1 00000fef: SWAP2 00000ff0: SWAP1 00000ff1: PUSH4 0xffffffff 00000ff6: AND 00000ff7: JUMP 00000ff8: JUMPDEST 00000ff9: PUSH2 0x1f2e 00000ffc: SWAP1 00000ffd: SWAP2 00000ffe: SWAP1 00000fff: PUSH4 0xffffffff 00001004: AND 00001005: JUMP 00001006: JUMPDEST 00001007: SWAP1 00001008: POP 00001009: SWAP1 0000100a: JUMP 0000100b: JUMPDEST 0000100c: PUSH1 0x07 0000100e: PUSH1 0x00 00001010: SWAP1 00001011: SLOAD 00001012: SWAP1 00001013: PUSH2 0x0100 00001016: EXP 00001017: SWAP1 00001018: DIV 00001019: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000102e: AND 0000102f: DUP2 00001030: JUMP 00001031: JUMPDEST 00001032: PUSH2 0x2710 00001035: DUP2 00001036: JUMP 00001037: JUMPDEST 00001038: PUSH1 0x00 0000103a: DUP1 0000103b: PUSH1 0x00 0000103d: DUP4 0000103e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001053: AND 00001054: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001069: AND 0000106a: DUP2 0000106b: MSTORE 0000106c: PUSH1 0x20 0000106e: ADD 0000106f: SWAP1 00001070: DUP2 00001071: MSTORE 00001072: PUSH1 0x20 00001074: ADD 00001075: PUSH1 0x00 00001077: KECCAK256 00001078: SLOAD 00001079: SWAP1 0000107a: POP 0000107b: SWAP2 0000107c: SWAP1 0000107d: POP 0000107e: JUMP 0000107f: JUMPDEST 00001080: PUSH1 0x00 00001082: PUSH2 0x10bc 00001085: PUSH2 0x108c 00001088: PUSH2 0x08fe 0000108b: JUMP 0000108c: JUMPDEST 0000108d: PUSH2 0x10ae 00001090: PUSH8 0x0de0b6b3a7640000 00001099: PUSH2 0x10a0 0000109c: PUSH2 0x145c 0000109f: JUMP 000010a0: JUMPDEST 000010a1: PUSH2 0x1ea8 000010a4: SWAP1 000010a5: SWAP2 000010a6: SWAP1 000010a7: PUSH4 0xffffffff 000010ac: AND 000010ad: JUMP 000010ae: JUMPDEST 000010af: PUSH2 0x1f2e 000010b2: SWAP1 000010b3: SWAP2 000010b4: SWAP1 000010b5: PUSH4 0xffffffff 000010ba: AND 000010bb: JUMP 000010bc: JUMPDEST 000010bd: SWAP1 000010be: POP 000010bf: SWAP1 000010c0: JUMP 000010c1: JUMPDEST 000010c2: PUSH1 0x07 000010c4: PUSH1 0x00 000010c6: SWAP1 000010c7: SLOAD 000010c8: SWAP1 000010c9: PUSH2 0x0100 000010cc: EXP 000010cd: SWAP1 000010ce: DIV 000010cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010e4: AND 000010e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010fa: AND 000010fb: CALLER 000010fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001111: AND 00001112: EQ 00001113: PUSH2 0x1184 00001116: JUMPI 00001117: PUSH1 0x40 00001119: MLOAD 0000111a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000113b: DUP2 0000113c: MSTORE 0000113d: PUSH1 0x04 0000113f: ADD 00001140: DUP1 00001141: DUP1 00001142: PUSH1 0x20 00001144: ADD 00001145: DUP3 00001146: DUP2 00001147: SUB 00001148: DUP3 00001149: MSTORE 0000114a: PUSH1 0x0b 0000114c: DUP2 0000114d: MSTORE 0000114e: PUSH1 0x20 00001150: ADD 00001151: DUP1 00001152: PUSH32 0x21676f7665726e616e6365000000000000000000000000000000000000000000 00001173: DUP2 00001174: MSTORE 00001175: POP 00001176: PUSH1 0x20 00001178: ADD 00001179: SWAP2 0000117a: POP 0000117b: POP 0000117c: PUSH1 0x40 0000117e: MLOAD 0000117f: DUP1 00001180: SWAP2 00001181: SUB 00001182: SWAP1 00001183: REVERT 00001184: JUMPDEST 00001185: DUP1 00001186: PUSH1 0x08 00001188: PUSH1 0x00 0000118a: PUSH2 0x0100 0000118d: EXP 0000118e: DUP2 0000118f: SLOAD 00001190: DUP2 00001191: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011a6: MUL 000011a7: NOT 000011a8: AND 000011a9: SWAP1 000011aa: DUP4 000011ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011c0: AND 000011c1: MUL 000011c2: OR 000011c3: SWAP1 000011c4: SSTORE 000011c5: POP 000011c6: POP 000011c7: JUMP 000011c8: JUMPDEST 000011c9: PUSH1 0x60 000011cb: PUSH1 0x04 000011cd: DUP1 000011ce: SLOAD 000011cf: PUSH1 0x01 000011d1: DUP2 000011d2: PUSH1 0x01 000011d4: AND 000011d5: ISZERO 000011d6: PUSH2 0x0100 000011d9: MUL 000011da: SUB 000011db: AND 000011dc: PUSH1 0x02 000011de: SWAP1 000011df: DIV 000011e0: DUP1 000011e1: PUSH1 0x1f 000011e3: ADD 000011e4: PUSH1 0x20 000011e6: DUP1 000011e7: SWAP2 000011e8: DIV 000011e9: MUL 000011ea: PUSH1 0x20 000011ec: ADD 000011ed: PUSH1 0x40 000011ef: MLOAD 000011f0: SWAP1 000011f1: DUP2 000011f2: ADD 000011f3: PUSH1 0x40 000011f5: MSTORE 000011f6: DUP1 000011f7: SWAP3 000011f8: SWAP2 000011f9: SWAP1 000011fa: DUP2 000011fb: DUP2 000011fc: MSTORE 000011fd: PUSH1 0x20 000011ff: ADD 00001200: DUP3 00001201: DUP1 00001202: SLOAD 00001203: PUSH1 0x01 00001205: DUP2 00001206: PUSH1 0x01 00001208: AND 00001209: ISZERO 0000120a: PUSH2 0x0100 0000120d: MUL 0000120e: SUB 0000120f: AND 00001210: PUSH1 0x02 00001212: SWAP1 00001213: DIV 00001214: DUP1 00001215: ISZERO 00001216: PUSH2 0x1260 00001219: JUMPI 0000121a: DUP1 0000121b: PUSH1 0x1f 0000121d: LT 0000121e: PUSH2 0x1235 00001221: JUMPI 00001222: PUSH2 0x0100 00001225: DUP1 00001226: DUP4 00001227: SLOAD 00001228: DIV 00001229: MUL 0000122a: DUP4 0000122b: MSTORE 0000122c: SWAP2 0000122d: PUSH1 0x20 0000122f: ADD 00001230: SWAP2 00001231: PUSH2 0x1260 00001234: JUMP 00001235: JUMPDEST 00001236: DUP3 00001237: ADD 00001238: SWAP2 00001239: SWAP1 0000123a: PUSH1 0x00 0000123c: MSTORE 0000123d: PUSH1 0x20 0000123f: PUSH1 0x00 00001241: KECCAK256 00001242: SWAP1 00001243: JUMPDEST 00001244: DUP2 00001245: SLOAD 00001246: DUP2 00001247: MSTORE 00001248: SWAP1 00001249: PUSH1 0x01 0000124b: ADD 0000124c: SWAP1 0000124d: PUSH1 0x20 0000124f: ADD 00001250: DUP1 00001251: DUP4 00001252: GT 00001253: PUSH2 0x1243 00001256: JUMPI 00001257: DUP3 00001258: SWAP1 00001259: SUB 0000125a: PUSH1 0x1f 0000125c: AND 0000125d: DUP3 0000125e: ADD 0000125f: SWAP2 00001260: JUMPDEST 00001261: POP 00001262: POP 00001263: POP 00001264: POP 00001265: POP 00001266: SWAP1 00001267: POP 00001268: SWAP1 00001269: JUMP 0000126a: JUMPDEST 0000126b: PUSH1 0x00 0000126d: PUSH2 0x132d 00001270: PUSH2 0x1277 00001273: PUSH2 0x1933 00001276: JUMP 00001277: JUMPDEST 00001278: DUP5 00001279: PUSH2 0x1328 0000127c: DUP6 0000127d: PUSH1 0x40 0000127f: MLOAD 00001280: DUP1 00001281: PUSH1 0x60 00001283: ADD 00001284: PUSH1 0x40 00001286: MSTORE 00001287: DUP1 00001288: PUSH1 0x25 0000128a: DUP2 0000128b: MSTORE 0000128c: PUSH1 0x20 0000128e: ADD 0000128f: PUSH2 0x2a5b 00001292: PUSH1 0x25 00001294: SWAP2 00001295: CODECOPY 00001296: PUSH1 0x01 00001298: PUSH1 0x00 0000129a: PUSH2 0x12a1 0000129d: PUSH2 0x1933 000012a0: JUMP 000012a1: JUMPDEST 000012a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012b7: AND 000012b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012cd: AND 000012ce: DUP2 000012cf: MSTORE 000012d0: PUSH1 0x20 000012d2: ADD 000012d3: SWAP1 000012d4: DUP2 000012d5: MSTORE 000012d6: PUSH1 0x20 000012d8: ADD 000012d9: PUSH1 0x00 000012db: KECCAK256 000012dc: PUSH1 0x00 000012de: DUP11 000012df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012f4: AND 000012f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000130a: AND 0000130b: DUP2 0000130c: MSTORE 0000130d: PUSH1 0x20 0000130f: ADD 00001310: SWAP1 00001311: DUP2 00001312: MSTORE 00001313: PUSH1 0x20 00001315: ADD 00001316: PUSH1 0x00 00001318: KECCAK256 00001319: SLOAD 0000131a: PUSH2 0x1de8 0000131d: SWAP1 0000131e: SWAP3 0000131f: SWAP2 00001320: SWAP1 00001321: PUSH4 0xffffffff 00001326: AND 00001327: JUMP 00001328: JUMPDEST 00001329: PUSH2 0x193b 0000132c: JUMP 0000132d: JUMPDEST 0000132e: PUSH1 0x01 00001330: SWAP1 00001331: POP 00001332: SWAP3 00001333: SWAP2 00001334: POP 00001335: POP 00001336: JUMP 00001337: JUMPDEST 00001338: PUSH1 0x00 0000133a: PUSH2 0x134b 0000133d: PUSH2 0x1344 00001340: PUSH2 0x1933 00001343: JUMP 00001344: JUMPDEST 00001345: DUP5 00001346: DUP5 00001347: PUSH2 0x1b32 0000134a: JUMP 0000134b: JUMPDEST 0000134c: PUSH1 0x01 0000134e: SWAP1 0000134f: POP 00001350: SWAP3 00001351: SWAP2 00001352: POP 00001353: POP 00001354: JUMP 00001355: JUMPDEST 00001356: PUSH1 0x07 00001358: PUSH1 0x00 0000135a: SWAP1 0000135b: SLOAD 0000135c: SWAP1 0000135d: PUSH2 0x0100 00001360: EXP 00001361: SWAP1 00001362: DIV 00001363: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001378: AND 00001379: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000138e: AND 0000138f: CALLER 00001390: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013a5: AND 000013a6: EQ 000013a7: PUSH2 0x1418 000013aa: JUMPI 000013ab: PUSH1 0x40 000013ad: MLOAD 000013ae: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000013cf: DUP2 000013d0: MSTORE 000013d1: PUSH1 0x04 000013d3: ADD 000013d4: DUP1 000013d5: DUP1 000013d6: PUSH1 0x20 000013d8: ADD 000013d9: DUP3 000013da: DUP2 000013db: SUB 000013dc: DUP3 000013dd: MSTORE 000013de: PUSH1 0x0b 000013e0: DUP2 000013e1: MSTORE 000013e2: PUSH1 0x20 000013e4: ADD 000013e5: DUP1 000013e6: PUSH32 0x21676f7665726e616e6365000000000000000000000000000000000000000000 00001407: DUP2 00001408: MSTORE 00001409: POP 0000140a: PUSH1 0x20 0000140c: ADD 0000140d: SWAP2 0000140e: POP 0000140f: POP 00001410: PUSH1 0x40 00001412: MLOAD 00001413: DUP1 00001414: SWAP2 00001415: SUB 00001416: SWAP1 00001417: REVERT 00001418: JUMPDEST 00001419: DUP1 0000141a: PUSH1 0x07 0000141c: PUSH1 0x00 0000141e: PUSH2 0x0100 00001421: EXP 00001422: DUP2 00001423: SLOAD 00001424: DUP2 00001425: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000143a: MUL 0000143b: NOT 0000143c: AND 0000143d: SWAP1 0000143e: DUP4 0000143f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001454: AND 00001455: MUL 00001456: OR 00001457: SWAP1 00001458: SSTORE 00001459: POP 0000145a: POP 0000145b: JUMP 0000145c: JUMPDEST 0000145d: PUSH1 0x00 0000145f: PUSH2 0x1645 00001462: PUSH1 0x08 00001464: PUSH1 0x00 00001466: SWAP1 00001467: SLOAD 00001468: SWAP1 00001469: PUSH2 0x0100 0000146c: EXP 0000146d: SWAP1 0000146e: DIV 0000146f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001484: AND 00001485: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000149a: AND 0000149b: PUSH4 0x70a08231 000014a0: PUSH1 0x05 000014a2: PUSH1 0x01 000014a4: SWAP1 000014a5: SLOAD 000014a6: SWAP1 000014a7: PUSH2 0x0100 000014aa: EXP 000014ab: SWAP1 000014ac: DIV 000014ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014c2: AND 000014c3: PUSH1 0x40 000014c5: MLOAD 000014c6: DUP3 000014c7: PUSH4 0xffffffff 000014cc: AND 000014cd: PUSH1 0xe0 000014cf: SHL 000014d0: DUP2 000014d1: MSTORE 000014d2: PUSH1 0x04 000014d4: ADD 000014d5: DUP1 000014d6: DUP3 000014d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014ec: AND 000014ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001502: AND 00001503: DUP2 00001504: MSTORE 00001505: PUSH1 0x20 00001507: ADD 00001508: SWAP2 00001509: POP 0000150a: POP 0000150b: PUSH1 0x20 0000150d: PUSH1 0x40 0000150f: MLOAD 00001510: DUP1 00001511: DUP4 00001512: SUB 00001513: DUP2 00001514: DUP7 00001515: DUP1 00001516: EXTCODESIZE 00001517: ISZERO 00001518: DUP1 00001519: ISZERO 0000151a: PUSH2 0x1522 0000151d: JUMPI 0000151e: PUSH1 0x00 00001520: DUP1 00001521: REVERT 00001522: JUMPDEST 00001523: POP 00001524: GAS 00001525: STATICCALL 00001526: ISZERO 00001527: DUP1 00001528: ISZERO 00001529: PUSH2 0x1536 0000152c: JUMPI 0000152d: RETURNDATASIZE 0000152e: PUSH1 0x00 00001530: DUP1 00001531: RETURNDATACOPY 00001532: RETURNDATASIZE 00001533: PUSH1 0x00 00001535: REVERT 00001536: JUMPDEST 00001537: POP 00001538: POP 00001539: POP 0000153a: POP 0000153b: PUSH1 0x40 0000153d: MLOAD 0000153e: RETURNDATASIZE 0000153f: PUSH1 0x20 00001541: DUP2 00001542: LT 00001543: ISZERO 00001544: PUSH2 0x154c 00001547: JUMPI 00001548: PUSH1 0x00 0000154a: DUP1 0000154b: REVERT 0000154c: JUMPDEST 0000154d: DUP2 0000154e: ADD 0000154f: SWAP1 00001550: DUP1 00001551: DUP1 00001552: MLOAD 00001553: SWAP1 00001554: PUSH1 0x20 00001556: ADD 00001557: SWAP1 00001558: SWAP3 00001559: SWAP2 0000155a: SWAP1 0000155b: POP 0000155c: POP 0000155d: POP 0000155e: PUSH1 0x05 00001560: PUSH1 0x01 00001562: SWAP1 00001563: SLOAD 00001564: SWAP1 00001565: PUSH2 0x0100 00001568: EXP 00001569: SWAP1 0000156a: DIV 0000156b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001580: AND 00001581: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001596: AND 00001597: PUSH4 0x70a08231 0000159c: ADDRESS 0000159d: PUSH1 0x40 0000159f: MLOAD 000015a0: DUP3 000015a1: PUSH4 0xffffffff 000015a6: AND 000015a7: PUSH1 0xe0 000015a9: SHL 000015aa: DUP2 000015ab: MSTORE 000015ac: PUSH1 0x04 000015ae: ADD 000015af: DUP1 000015b0: DUP3 000015b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015c6: AND 000015c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015dc: AND 000015dd: DUP2 000015de: MSTORE 000015df: PUSH1 0x20 000015e1: ADD 000015e2: SWAP2 000015e3: POP 000015e4: POP 000015e5: PUSH1 0x20 000015e7: PUSH1 0x40 000015e9: MLOAD 000015ea: DUP1 000015eb: DUP4 000015ec: SUB 000015ed: DUP2 000015ee: DUP7 000015ef: DUP1 000015f0: EXTCODESIZE 000015f1: ISZERO 000015f2: DUP1 000015f3: ISZERO 000015f4: PUSH2 0x15fc 000015f7: JUMPI 000015f8: PUSH1 0x00 000015fa: DUP1 000015fb: REVERT 000015fc: JUMPDEST 000015fd: POP 000015fe: GAS 000015ff: STATICCALL 00001600: ISZERO 00001601: DUP1 00001602: ISZERO 00001603: PUSH2 0x1610 00001606: JUMPI 00001607: RETURNDATASIZE 00001608: PUSH1 0x00 0000160a: DUP1 0000160b: RETURNDATACOPY 0000160c: RETURNDATASIZE 0000160d: PUSH1 0x00 0000160f: REVERT 00001610: JUMPDEST 00001611: POP 00001612: POP 00001613: POP 00001614: POP 00001615: PUSH1 0x40 00001617: MLOAD 00001618: RETURNDATASIZE 00001619: PUSH1 0x20 0000161b: DUP2 0000161c: LT 0000161d: ISZERO 0000161e: PUSH2 0x1626 00001621: JUMPI 00001622: PUSH1 0x00 00001624: DUP1 00001625: REVERT 00001626: JUMPDEST 00001627: DUP2 00001628: ADD 00001629: SWAP1 0000162a: DUP1 0000162b: DUP1 0000162c: MLOAD 0000162d: SWAP1 0000162e: PUSH1 0x20 00001630: ADD 00001631: SWAP1 00001632: SWAP3 00001633: SWAP2 00001634: SWAP1 00001635: POP 00001636: POP 00001637: POP 00001638: PUSH2 0x217a 0000163b: SWAP1 0000163c: SWAP2 0000163d: SWAP1 0000163e: PUSH4 0xffffffff 00001643: AND 00001644: JUMP 00001645: JUMPDEST 00001646: SWAP1 00001647: POP 00001648: SWAP1 00001649: JUMP 0000164a: JUMPDEST 0000164b: PUSH1 0x00 0000164d: PUSH2 0x1654 00001650: PUSH2 0x145c 00001653: JUMP 00001654: JUMPDEST 00001655: SWAP1 00001656: POP 00001657: PUSH2 0x16a5 0000165a: CALLER 0000165b: ADDRESS 0000165c: DUP5 0000165d: PUSH1 0x05 0000165f: PUSH1 0x01 00001661: SWAP1 00001662: SLOAD 00001663: SWAP1 00001664: PUSH2 0x0100 00001667: EXP 00001668: SWAP1 00001669: DIV 0000166a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000167f: AND 00001680: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001695: AND 00001696: PUSH2 0x22d3 00001699: SWAP1 0000169a: SWAP4 0000169b: SWAP3 0000169c: SWAP2 0000169d: SWAP1 0000169e: PUSH4 0xffffffff 000016a3: AND 000016a4: JUMP 000016a5: JUMPDEST 000016a6: PUSH1 0x00 000016a8: DUP1 000016a9: SWAP1 000016aa: POP 000016ab: PUSH1 0x00 000016ad: DUP3 000016ae: EQ 000016af: ISZERO 000016b0: PUSH2 0x16bb 000016b3: JUMPI 000016b4: DUP3 000016b5: SWAP1 000016b6: POP 000016b7: PUSH2 0x16ea 000016ba: JUMP 000016bb: JUMPDEST 000016bc: PUSH2 0x16e7 000016bf: DUP3 000016c0: PUSH2 0x16d9 000016c3: PUSH2 0x16ca 000016c6: PUSH2 0x08fe 000016c9: JUMP 000016ca: JUMPDEST 000016cb: DUP7 000016cc: PUSH2 0x1ea8 000016cf: SWAP1 000016d0: SWAP2 000016d1: SWAP1 000016d2: PUSH4 0xffffffff 000016d7: AND 000016d8: JUMP 000016d9: JUMPDEST 000016da: PUSH2 0x1f2e 000016dd: SWAP1 000016de: SWAP2 000016df: SWAP1 000016e0: PUSH4 0xffffffff 000016e5: AND 000016e6: JUMP 000016e7: JUMPDEST 000016e8: SWAP1 000016e9: POP 000016ea: JUMPDEST 000016eb: PUSH2 0x16f4 000016ee: CALLER 000016ef: DUP3 000016f0: PUSH2 0x23d9 000016f3: JUMP 000016f4: JUMPDEST 000016f5: POP 000016f6: POP 000016f7: POP 000016f8: JUMP 000016f9: JUMPDEST 000016fa: PUSH1 0x00 000016fc: PUSH2 0x1703 000016ff: PUSH2 0x0f02 00001702: JUMP 00001703: JUMPDEST 00001704: SWAP1 00001705: POP 00001706: PUSH2 0x1774 00001709: PUSH1 0x08 0000170b: PUSH1 0x00 0000170d: SWAP1 0000170e: SLOAD 0000170f: SWAP1 00001710: PUSH2 0x0100 00001713: EXP 00001714: SWAP1 00001715: DIV 00001716: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000172b: AND 0000172c: DUP3 0000172d: PUSH1 0x05 0000172f: PUSH1 0x01 00001731: SWAP1 00001732: SLOAD 00001733: SWAP1 00001734: PUSH2 0x0100 00001737: EXP 00001738: SWAP1 00001739: DIV 0000173a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000174f: AND 00001750: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001765: AND 00001766: PUSH2 0x2202 00001769: SWAP1 0000176a: SWAP3 0000176b: SWAP2 0000176c: SWAP1 0000176d: PUSH4 0xffffffff 00001772: AND 00001773: JUMP 00001774: JUMPDEST 00001775: PUSH1 0x08 00001777: PUSH1 0x00 00001779: SWAP1 0000177a: SLOAD 0000177b: SWAP1 0000177c: PUSH2 0x0100 0000177f: EXP 00001780: SWAP1 00001781: DIV 00001782: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001797: AND 00001798: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017ad: AND 000017ae: PUSH4 0xb02bf4b9 000017b3: PUSH1 0x05 000017b5: PUSH1 0x01 000017b7: SWAP1 000017b8: SLOAD 000017b9: SWAP1 000017ba: PUSH2 0x0100 000017bd: EXP 000017be: SWAP1 000017bf: DIV 000017c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017d5: AND 000017d6: DUP4 000017d7: PUSH1 0x40 000017d9: MLOAD 000017da: DUP4 000017db: PUSH4 0xffffffff 000017e0: AND 000017e1: PUSH1 0xe0 000017e3: SHL 000017e4: DUP2 000017e5: MSTORE 000017e6: PUSH1 0x04 000017e8: ADD 000017e9: DUP1 000017ea: DUP4 000017eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001800: AND 00001801: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001816: AND 00001817: DUP2 00001818: MSTORE 00001819: PUSH1 0x20 0000181b: ADD 0000181c: DUP3 0000181d: DUP2 0000181e: MSTORE 0000181f: PUSH1 0x20 00001821: ADD 00001822: SWAP3 00001823: POP 00001824: POP 00001825: POP 00001826: PUSH1 0x00 00001828: PUSH1 0x40 0000182a: MLOAD 0000182b: DUP1 0000182c: DUP4 0000182d: SUB 0000182e: DUP2 0000182f: PUSH1 0x00 00001831: DUP8 00001832: DUP1 00001833: EXTCODESIZE 00001834: ISZERO 00001835: DUP1 00001836: ISZERO 00001837: PUSH2 0x183f 0000183a: JUMPI 0000183b: PUSH1 0x00 0000183d: DUP1 0000183e: REVERT 0000183f: JUMPDEST 00001840: POP 00001841: GAS 00001842: CALL 00001843: ISZERO 00001844: DUP1 00001845: ISZERO 00001846: PUSH2 0x1853 00001849: JUMPI 0000184a: RETURNDATASIZE 0000184b: PUSH1 0x00 0000184d: DUP1 0000184e: RETURNDATACOPY 0000184f: RETURNDATASIZE 00001850: PUSH1 0x00 00001852: REVERT 00001853: JUMPDEST 00001854: POP 00001855: POP 00001856: POP 00001857: POP 00001858: POP 00001859: JUMP 0000185a: JUMPDEST 0000185b: PUSH1 0x00 0000185d: PUSH1 0x01 0000185f: PUSH1 0x00 00001861: DUP5 00001862: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001877: AND 00001878: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000188d: AND 0000188e: DUP2 0000188f: MSTORE 00001890: PUSH1 0x20 00001892: ADD 00001893: SWAP1 00001894: DUP2 00001895: MSTORE 00001896: PUSH1 0x20 00001898: ADD 00001899: PUSH1 0x00 0000189b: KECCAK256 0000189c: PUSH1 0x00 0000189e: DUP4 0000189f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018b4: AND 000018b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018ca: AND 000018cb: DUP2 000018cc: MSTORE 000018cd: PUSH1 0x20 000018cf: ADD 000018d0: SWAP1 000018d1: DUP2 000018d2: MSTORE 000018d3: PUSH1 0x20 000018d5: ADD 000018d6: PUSH1 0x00 000018d8: KECCAK256 000018d9: SLOAD 000018da: SWAP1 000018db: POP 000018dc: SWAP3 000018dd: SWAP2 000018de: POP 000018df: POP 000018e0: JUMP 000018e1: JUMPDEST 000018e2: PUSH1 0x08 000018e4: PUSH1 0x00 000018e6: SWAP1 000018e7: SLOAD 000018e8: SWAP1 000018e9: PUSH2 0x0100 000018ec: EXP 000018ed: SWAP1 000018ee: DIV 000018ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001904: AND 00001905: DUP2 00001906: JUMP 00001907: JUMPDEST 00001908: PUSH1 0x06 0000190a: SLOAD 0000190b: DUP2 0000190c: JUMP 0000190d: JUMPDEST 0000190e: PUSH1 0x05 00001910: PUSH1 0x01 00001912: SWAP1 00001913: SLOAD 00001914: SWAP1 00001915: PUSH2 0x0100 00001918: EXP 00001919: SWAP1 0000191a: DIV 0000191b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001930: AND 00001931: DUP2 00001932: JUMP 00001933: JUMPDEST 00001934: PUSH1 0x00 00001936: CALLER 00001937: SWAP1 00001938: POP 00001939: SWAP1 0000193a: JUMP 0000193b: JUMPDEST 0000193c: PUSH1 0x00 0000193e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001953: AND 00001954: DUP4 00001955: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000196a: AND 0000196b: EQ 0000196c: ISZERO 0000196d: PUSH2 0x19c1 00001970: JUMPI 00001971: PUSH1 0x40 00001973: MLOAD 00001974: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001995: DUP2 00001996: MSTORE 00001997: PUSH1 0x04 00001999: ADD 0000199a: DUP1 0000199b: DUP1 0000199c: PUSH1 0x20 0000199e: ADD 0000199f: DUP3 000019a0: DUP2 000019a1: SUB 000019a2: DUP3 000019a3: MSTORE 000019a4: PUSH1 0x24 000019a6: DUP2 000019a7: MSTORE 000019a8: PUSH1 0x20 000019aa: ADD 000019ab: DUP1 000019ac: PUSH2 0x2a0d 000019af: PUSH1 0x24 000019b1: SWAP2 000019b2: CODECOPY 000019b3: PUSH1 0x40 000019b5: ADD 000019b6: SWAP2 000019b7: POP 000019b8: POP 000019b9: PUSH1 0x40 000019bb: MLOAD 000019bc: DUP1 000019bd: SWAP2 000019be: SUB 000019bf: SWAP1 000019c0: REVERT 000019c1: JUMPDEST 000019c2: PUSH1 0x00 000019c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019d9: AND 000019da: DUP3 000019db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019f0: AND 000019f1: EQ 000019f2: ISZERO 000019f3: PUSH2 0x1a47 000019f6: JUMPI 000019f7: PUSH1 0x40 000019f9: MLOAD 000019fa: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001a1b: DUP2 00001a1c: MSTORE 00001a1d: PUSH1 0x04 00001a1f: ADD 00001a20: DUP1 00001a21: DUP1 00001a22: PUSH1 0x20 00001a24: ADD 00001a25: DUP3 00001a26: DUP2 00001a27: SUB 00001a28: DUP3 00001a29: MSTORE 00001a2a: PUSH1 0x22 00001a2c: DUP2 00001a2d: MSTORE 00001a2e: PUSH1 0x20 00001a30: ADD 00001a31: DUP1 00001a32: PUSH2 0x2936 00001a35: PUSH1 0x22 00001a37: SWAP2 00001a38: CODECOPY 00001a39: PUSH1 0x40 00001a3b: ADD 00001a3c: SWAP2 00001a3d: POP 00001a3e: POP 00001a3f: PUSH1 0x40 00001a41: MLOAD 00001a42: DUP1 00001a43: SWAP2 00001a44: SUB 00001a45: SWAP1 00001a46: REVERT 00001a47: JUMPDEST 00001a48: DUP1 00001a49: PUSH1 0x01 00001a4b: PUSH1 0x00 00001a4d: DUP6 00001a4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a63: AND 00001a64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a79: AND 00001a7a: DUP2 00001a7b: MSTORE 00001a7c: PUSH1 0x20 00001a7e: ADD 00001a7f: SWAP1 00001a80: DUP2 00001a81: MSTORE 00001a82: PUSH1 0x20 00001a84: ADD 00001a85: PUSH1 0x00 00001a87: KECCAK256 00001a88: PUSH1 0x00 00001a8a: DUP5 00001a8b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001aa0: AND 00001aa1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ab6: AND 00001ab7: DUP2 00001ab8: MSTORE 00001ab9: PUSH1 0x20 00001abb: ADD 00001abc: SWAP1 00001abd: DUP2 00001abe: MSTORE 00001abf: PUSH1 0x20 00001ac1: ADD 00001ac2: PUSH1 0x00 00001ac4: KECCAK256 00001ac5: DUP2 00001ac6: SWAP1 00001ac7: SSTORE 00001ac8: POP 00001ac9: DUP2 00001aca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001adf: AND 00001ae0: DUP4 00001ae1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001af6: AND 00001af7: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00001b18: DUP4 00001b19: PUSH1 0x40 00001b1b: MLOAD 00001b1c: DUP1 00001b1d: DUP3 00001b1e: DUP2 00001b1f: MSTORE 00001b20: PUSH1 0x20 00001b22: ADD 00001b23: SWAP2 00001b24: POP 00001b25: POP 00001b26: PUSH1 0x40 00001b28: MLOAD 00001b29: DUP1 00001b2a: SWAP2 00001b2b: SUB 00001b2c: SWAP1 00001b2d: LOG3 00001b2e: POP 00001b2f: POP 00001b30: POP 00001b31: JUMP 00001b32: JUMPDEST 00001b33: PUSH1 0x00 00001b35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b4a: AND 00001b4b: DUP4 00001b4c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b61: AND 00001b62: EQ 00001b63: ISZERO 00001b64: PUSH2 0x1bb8 00001b67: JUMPI 00001b68: PUSH1 0x40 00001b6a: MLOAD 00001b6b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001b8c: DUP2 00001b8d: MSTORE 00001b8e: PUSH1 0x04 00001b90: ADD 00001b91: DUP1 00001b92: DUP1 00001b93: PUSH1 0x20 00001b95: ADD 00001b96: DUP3 00001b97: DUP2 00001b98: SUB 00001b99: DUP3 00001b9a: MSTORE 00001b9b: PUSH1 0x25 00001b9d: DUP2 00001b9e: MSTORE 00001b9f: PUSH1 0x20 00001ba1: ADD 00001ba2: DUP1 00001ba3: PUSH2 0x29e8 00001ba6: PUSH1 0x25 00001ba8: SWAP2 00001ba9: CODECOPY 00001baa: PUSH1 0x40 00001bac: ADD 00001bad: SWAP2 00001bae: POP 00001baf: POP 00001bb0: PUSH1 0x40 00001bb2: MLOAD 00001bb3: DUP1 00001bb4: SWAP2 00001bb5: SUB 00001bb6: SWAP1 00001bb7: REVERT 00001bb8: JUMPDEST 00001bb9: PUSH1 0x00 00001bbb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bd0: AND 00001bd1: DUP3 00001bd2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001be7: AND 00001be8: EQ 00001be9: ISZERO 00001bea: PUSH2 0x1c3e 00001bed: JUMPI 00001bee: PUSH1 0x40 00001bf0: MLOAD 00001bf1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001c12: DUP2 00001c13: MSTORE 00001c14: PUSH1 0x04 00001c16: ADD 00001c17: DUP1 00001c18: DUP1 00001c19: PUSH1 0x20 00001c1b: ADD 00001c1c: DUP3 00001c1d: DUP2 00001c1e: SUB 00001c1f: DUP3 00001c20: MSTORE 00001c21: PUSH1 0x23 00001c23: DUP2 00001c24: MSTORE 00001c25: PUSH1 0x20 00001c27: ADD 00001c28: DUP1 00001c29: PUSH2 0x28f1 00001c2c: PUSH1 0x23 00001c2e: SWAP2 00001c2f: CODECOPY 00001c30: PUSH1 0x40 00001c32: ADD 00001c33: SWAP2 00001c34: POP 00001c35: POP 00001c36: PUSH1 0x40 00001c38: MLOAD 00001c39: DUP1 00001c3a: SWAP2 00001c3b: SUB 00001c3c: SWAP1 00001c3d: REVERT 00001c3e: JUMPDEST 00001c3f: PUSH2 0x1ca9 00001c42: DUP2 00001c43: PUSH1 0x40 00001c45: MLOAD 00001c46: DUP1 00001c47: PUSH1 0x60 00001c49: ADD 00001c4a: PUSH1 0x40 00001c4c: MSTORE 00001c4d: DUP1 00001c4e: PUSH1 0x26 00001c50: DUP2 00001c51: MSTORE 00001c52: PUSH1 0x20 00001c54: ADD 00001c55: PUSH2 0x2958 00001c58: PUSH1 0x26 00001c5a: SWAP2 00001c5b: CODECOPY 00001c5c: PUSH1 0x00 00001c5e: DUP1 00001c5f: DUP8 00001c60: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c75: AND 00001c76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c8b: AND 00001c8c: DUP2 00001c8d: MSTORE 00001c8e: PUSH1 0x20 00001c90: ADD 00001c91: SWAP1 00001c92: DUP2 00001c93: MSTORE 00001c94: PUSH1 0x20 00001c96: ADD 00001c97: PUSH1 0x00 00001c99: KECCAK256 00001c9a: SLOAD 00001c9b: PUSH2 0x1de8 00001c9e: SWAP1 00001c9f: SWAP3 00001ca0: SWAP2 00001ca1: SWAP1 00001ca2: PUSH4 0xffffffff 00001ca7: AND 00001ca8: JUMP 00001ca9: JUMPDEST 00001caa: PUSH1 0x00 00001cac: DUP1 00001cad: DUP6 00001cae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cc3: AND 00001cc4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cd9: AND 00001cda: DUP2 00001cdb: MSTORE 00001cdc: PUSH1 0x20 00001cde: ADD 00001cdf: SWAP1 00001ce0: DUP2 00001ce1: MSTORE 00001ce2: PUSH1 0x20 00001ce4: ADD 00001ce5: PUSH1 0x00 00001ce7: KECCAK256 00001ce8: DUP2 00001ce9: SWAP1 00001cea: SSTORE 00001ceb: POP 00001cec: PUSH2 0x1d3c 00001cef: DUP2 00001cf0: PUSH1 0x00 00001cf2: DUP1 00001cf3: DUP6 00001cf4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d09: AND 00001d0a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d1f: AND 00001d20: DUP2 00001d21: MSTORE 00001d22: PUSH1 0x20 00001d24: ADD 00001d25: SWAP1 00001d26: DUP2 00001d27: MSTORE 00001d28: PUSH1 0x20 00001d2a: ADD 00001d2b: PUSH1 0x00 00001d2d: KECCAK256 00001d2e: SLOAD 00001d2f: PUSH2 0x217a 00001d32: SWAP1 00001d33: SWAP2 00001d34: SWAP1 00001d35: PUSH4 0xffffffff 00001d3a: AND 00001d3b: JUMP 00001d3c: JUMPDEST 00001d3d: PUSH1 0x00 00001d3f: DUP1 00001d40: DUP5 00001d41: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d56: AND 00001d57: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d6c: AND 00001d6d: DUP2 00001d6e: MSTORE 00001d6f: PUSH1 0x20 00001d71: ADD 00001d72: SWAP1 00001d73: DUP2 00001d74: MSTORE 00001d75: PUSH1 0x20 00001d77: ADD 00001d78: PUSH1 0x00 00001d7a: KECCAK256 00001d7b: DUP2 00001d7c: SWAP1 00001d7d: SSTORE 00001d7e: POP 00001d7f: DUP2 00001d80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d95: AND 00001d96: DUP4 00001d97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dac: AND 00001dad: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001dce: DUP4 00001dcf: PUSH1 0x40 00001dd1: MLOAD 00001dd2: DUP1 00001dd3: DUP3 00001dd4: DUP2 00001dd5: MSTORE 00001dd6: PUSH1 0x20 00001dd8: ADD 00001dd9: SWAP2 00001dda: POP 00001ddb: POP 00001ddc: PUSH1 0x40 00001dde: MLOAD 00001ddf: DUP1 00001de0: SWAP2 00001de1: SUB 00001de2: SWAP1 00001de3: LOG3 00001de4: POP 00001de5: POP 00001de6: POP 00001de7: JUMP 00001de8: JUMPDEST 00001de9: PUSH1 0x00 00001deb: DUP4 00001dec: DUP4 00001ded: GT 00001dee: ISZERO 00001def: DUP3 00001df0: SWAP1 00001df1: PUSH2 0x1e95 00001df4: JUMPI 00001df5: PUSH1 0x40 00001df7: MLOAD 00001df8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001e19: DUP2 00001e1a: MSTORE 00001e1b: PUSH1 0x04 00001e1d: ADD 00001e1e: DUP1 00001e1f: DUP1 00001e20: PUSH1 0x20 00001e22: ADD 00001e23: DUP3 00001e24: DUP2 00001e25: SUB 00001e26: DUP3 00001e27: MSTORE 00001e28: DUP4 00001e29: DUP2 00001e2a: DUP2 00001e2b: MLOAD 00001e2c: DUP2 00001e2d: MSTORE 00001e2e: PUSH1 0x20 00001e30: ADD 00001e31: SWAP2 00001e32: POP 00001e33: DUP1 00001e34: MLOAD 00001e35: SWAP1 00001e36: PUSH1 0x20 00001e38: ADD 00001e39: SWAP1 00001e3a: DUP1 00001e3b: DUP4 00001e3c: DUP4 00001e3d: PUSH1 0x00 00001e3f: JUMPDEST 00001e40: DUP4 00001e41: DUP2 00001e42: LT 00001e43: ISZERO 00001e44: PUSH2 0x1e5a 00001e47: JUMPI 00001e48: DUP1 00001e49: DUP3 00001e4a: ADD 00001e4b: MLOAD 00001e4c: DUP2 00001e4d: DUP5 00001e4e: ADD 00001e4f: MSTORE 00001e50: PUSH1 0x20 00001e52: DUP2 00001e53: ADD 00001e54: SWAP1 00001e55: POP 00001e56: PUSH2 0x1e3f 00001e59: JUMP 00001e5a: JUMPDEST 00001e5b: POP 00001e5c: POP 00001e5d: POP 00001e5e: POP 00001e5f: SWAP1 00001e60: POP 00001e61: SWAP1 00001e62: DUP2 00001e63: ADD 00001e64: SWAP1 00001e65: PUSH1 0x1f 00001e67: AND 00001e68: DUP1 00001e69: ISZERO 00001e6a: PUSH2 0x1e87 00001e6d: JUMPI 00001e6e: DUP1 00001e6f: DUP3 00001e70: SUB 00001e71: DUP1 00001e72: MLOAD 00001e73: PUSH1 0x01 00001e75: DUP4 00001e76: PUSH1 0x20 00001e78: SUB 00001e79: PUSH2 0x0100 00001e7c: EXP 00001e7d: SUB 00001e7e: NOT 00001e7f: AND 00001e80: DUP2 00001e81: MSTORE 00001e82: PUSH1 0x20 00001e84: ADD 00001e85: SWAP2 00001e86: POP 00001e87: JUMPDEST 00001e88: POP 00001e89: SWAP3 00001e8a: POP 00001e8b: POP 00001e8c: POP 00001e8d: PUSH1 0x40 00001e8f: MLOAD 00001e90: DUP1 00001e91: SWAP2 00001e92: SUB 00001e93: SWAP1 00001e94: REVERT 00001e95: JUMPDEST 00001e96: POP 00001e97: PUSH1 0x00 00001e99: DUP4 00001e9a: DUP6 00001e9b: SUB 00001e9c: SWAP1 00001e9d: POP 00001e9e: DUP1 00001e9f: SWAP2 00001ea0: POP 00001ea1: POP 00001ea2: SWAP4 00001ea3: SWAP3 00001ea4: POP 00001ea5: POP 00001ea6: POP 00001ea7: JUMP 00001ea8: JUMPDEST 00001ea9: PUSH1 0x00 00001eab: DUP1 00001eac: DUP4 00001ead: EQ 00001eae: ISZERO 00001eaf: PUSH2 0x1ebb 00001eb2: JUMPI 00001eb3: PUSH1 0x00 00001eb5: SWAP1 00001eb6: POP 00001eb7: PUSH2 0x1f28 00001eba: JUMP 00001ebb: JUMPDEST 00001ebc: PUSH1 0x00 00001ebe: DUP3 00001ebf: DUP5 00001ec0: MUL 00001ec1: SWAP1 00001ec2: POP 00001ec3: DUP3 00001ec4: DUP5 00001ec5: DUP3 00001ec6: DUP2 00001ec7: PUSH2 0x1ecc 00001eca: JUMPI 00001ecb: INVALID 00001ecc: JUMPDEST 00001ecd: DIV 00001ece: EQ 00001ecf: PUSH2 0x1f23 00001ed2: JUMPI 00001ed3: PUSH1 0x40 00001ed5: MLOAD 00001ed6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001ef7: DUP2 00001ef8: MSTORE 00001ef9: PUSH1 0x04 00001efb: ADD 00001efc: DUP1 00001efd: DUP1 00001efe: PUSH1 0x20 00001f00: ADD 00001f01: DUP3 00001f02: DUP2 00001f03: SUB 00001f04: DUP3 00001f05: MSTORE 00001f06: PUSH1 0x21 00001f08: DUP2 00001f09: MSTORE 00001f0a: PUSH1 0x20 00001f0c: ADD 00001f0d: DUP1 00001f0e: PUSH2 0x297e 00001f11: PUSH1 0x21 00001f13: SWAP2 00001f14: CODECOPY 00001f15: PUSH1 0x40 00001f17: ADD 00001f18: SWAP2 00001f19: POP 00001f1a: POP 00001f1b: PUSH1 0x40 00001f1d: MLOAD 00001f1e: DUP1 00001f1f: SWAP2 00001f20: SUB 00001f21: SWAP1 00001f22: REVERT 00001f23: JUMPDEST 00001f24: DUP1 00001f25: SWAP2 00001f26: POP 00001f27: POP 00001f28: JUMPDEST 00001f29: SWAP3 00001f2a: SWAP2 00001f2b: POP 00001f2c: POP 00001f2d: JUMP 00001f2e: JUMPDEST 00001f2f: PUSH1 0x00 00001f31: PUSH2 0x1f70 00001f34: DUP4 00001f35: DUP4 00001f36: PUSH1 0x40 00001f38: MLOAD 00001f39: DUP1 00001f3a: PUSH1 0x40 00001f3c: ADD 00001f3d: PUSH1 0x40 00001f3f: MSTORE 00001f40: DUP1 00001f41: PUSH1 0x1a 00001f43: DUP2 00001f44: MSTORE 00001f45: PUSH1 0x20 00001f47: ADD 00001f48: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000 00001f69: DUP2 00001f6a: MSTORE 00001f6b: POP 00001f6c: PUSH2 0x2594 00001f6f: JUMP 00001f70: JUMPDEST 00001f71: SWAP1 00001f72: POP 00001f73: SWAP3 00001f74: SWAP2 00001f75: POP 00001f76: POP 00001f77: JUMP 00001f78: JUMPDEST 00001f79: PUSH1 0x00 00001f7b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f90: AND 00001f91: DUP3 00001f92: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fa7: AND 00001fa8: EQ 00001fa9: ISZERO 00001faa: PUSH2 0x1ffe 00001fad: JUMPI 00001fae: PUSH1 0x40 00001fb0: MLOAD 00001fb1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001fd2: DUP2 00001fd3: MSTORE 00001fd4: PUSH1 0x04 00001fd6: ADD 00001fd7: DUP1 00001fd8: DUP1 00001fd9: PUSH1 0x20 00001fdb: ADD 00001fdc: DUP3 00001fdd: DUP2 00001fde: SUB 00001fdf: DUP3 00001fe0: MSTORE 00001fe1: PUSH1 0x21 00001fe3: DUP2 00001fe4: MSTORE 00001fe5: PUSH1 0x20 00001fe7: ADD 00001fe8: DUP1 00001fe9: PUSH2 0x29c7 00001fec: PUSH1 0x21 00001fee: SWAP2 00001fef: CODECOPY 00001ff0: PUSH1 0x40 00001ff2: ADD 00001ff3: SWAP2 00001ff4: POP 00001ff5: POP 00001ff6: PUSH1 0x40 00001ff8: MLOAD 00001ff9: DUP1 00001ffa: SWAP2 00001ffb: SUB 00001ffc: SWAP1 00001ffd: REVERT 00001ffe: JUMPDEST 00001fff: PUSH2 0x2069 00002002: DUP2 00002003: PUSH1 0x40 00002005: MLOAD 00002006: DUP1 00002007: PUSH1 0x60 00002009: ADD 0000200a: PUSH1 0x40 0000200c: MSTORE 0000200d: DUP1 0000200e: PUSH1 0x22 00002010: DUP2 00002011: MSTORE 00002012: PUSH1 0x20 00002014: ADD 00002015: PUSH2 0x2914 00002018: PUSH1 0x22 0000201a: SWAP2 0000201b: CODECOPY 0000201c: PUSH1 0x00 0000201e: DUP1 0000201f: DUP7 00002020: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002035: AND 00002036: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000204b: AND 0000204c: DUP2 0000204d: MSTORE 0000204e: PUSH1 0x20 00002050: ADD 00002051: SWAP1 00002052: DUP2 00002053: MSTORE 00002054: PUSH1 0x20 00002056: ADD 00002057: PUSH1 0x00 00002059: KECCAK256 0000205a: SLOAD 0000205b: PUSH2 0x1de8 0000205e: SWAP1 0000205f: SWAP3 00002060: SWAP2 00002061: SWAP1 00002062: PUSH4 0xffffffff 00002067: AND 00002068: JUMP 00002069: JUMPDEST 0000206a: PUSH1 0x00 0000206c: DUP1 0000206d: DUP5 0000206e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002083: AND 00002084: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002099: AND 0000209a: DUP2 0000209b: MSTORE 0000209c: PUSH1 0x20 0000209e: ADD 0000209f: SWAP1 000020a0: DUP2 000020a1: MSTORE 000020a2: PUSH1 0x20 000020a4: ADD 000020a5: PUSH1 0x00 000020a7: KECCAK256 000020a8: DUP2 000020a9: SWAP1 000020aa: SSTORE 000020ab: POP 000020ac: PUSH2 0x20c0 000020af: DUP2 000020b0: PUSH1 0x02 000020b2: SLOAD 000020b3: PUSH2 0x2130 000020b6: SWAP1 000020b7: SWAP2 000020b8: SWAP1 000020b9: PUSH4 0xffffffff 000020be: AND 000020bf: JUMP 000020c0: JUMPDEST 000020c1: PUSH1 0x02 000020c3: DUP2 000020c4: SWAP1 000020c5: SSTORE 000020c6: POP 000020c7: PUSH1 0x00 000020c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020de: AND 000020df: DUP3 000020e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020f5: AND 000020f6: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00002117: DUP4 00002118: PUSH1 0x40 0000211a: MLOAD 0000211b: DUP1 0000211c: DUP3 0000211d: DUP2 0000211e: MSTORE 0000211f: PUSH1 0x20 00002121: ADD 00002122: SWAP2 00002123: POP 00002124: POP 00002125: PUSH1 0x40 00002127: MLOAD 00002128: DUP1 00002129: SWAP2 0000212a: SUB 0000212b: SWAP1 0000212c: LOG3 0000212d: POP 0000212e: POP 0000212f: JUMP 00002130: JUMPDEST 00002131: PUSH1 0x00 00002133: PUSH2 0x2172 00002136: DUP4 00002137: DUP4 00002138: PUSH1 0x40 0000213a: MLOAD 0000213b: DUP1 0000213c: PUSH1 0x40 0000213e: ADD 0000213f: PUSH1 0x40 00002141: MSTORE 00002142: DUP1 00002143: PUSH1 0x1e 00002145: DUP2 00002146: MSTORE 00002147: PUSH1 0x20 00002149: ADD 0000214a: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 0000216b: DUP2 0000216c: MSTORE 0000216d: POP 0000216e: PUSH2 0x1de8 00002171: JUMP 00002172: JUMPDEST 00002173: SWAP1 00002174: POP 00002175: SWAP3 00002176: SWAP2 00002177: POP 00002178: POP 00002179: JUMP 0000217a: JUMPDEST 0000217b: PUSH1 0x00 0000217d: DUP1 0000217e: DUP3 0000217f: DUP5 00002180: ADD 00002181: SWAP1 00002182: POP 00002183: DUP4 00002184: DUP2 00002185: LT 00002186: ISZERO 00002187: PUSH2 0x21f8 0000218a: JUMPI 0000218b: PUSH1 0x40 0000218d: MLOAD 0000218e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000021af: DUP2 000021b0: MSTORE 000021b1: PUSH1 0x04 000021b3: ADD 000021b4: DUP1 000021b5: DUP1 000021b6: PUSH1 0x20 000021b8: ADD 000021b9: DUP3 000021ba: DUP2 000021bb: SUB 000021bc: DUP3 000021bd: MSTORE 000021be: PUSH1 0x1b 000021c0: DUP2 000021c1: MSTORE 000021c2: PUSH1 0x20 000021c4: ADD 000021c5: DUP1 000021c6: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 000021e7: DUP2 000021e8: MSTORE 000021e9: POP 000021ea: PUSH1 0x20 000021ec: ADD 000021ed: SWAP2 000021ee: POP 000021ef: POP 000021f0: PUSH1 0x40 000021f2: MLOAD 000021f3: DUP1 000021f4: SWAP2 000021f5: SUB 000021f6: SWAP1 000021f7: REVERT 000021f8: JUMPDEST 000021f9: DUP1 000021fa: SWAP2 000021fb: POP 000021fc: POP 000021fd: SWAP3 000021fe: SWAP2 000021ff: POP 00002200: POP 00002201: JUMP 00002202: JUMPDEST 00002203: PUSH2 0x22ce 00002206: DUP4 00002207: DUP5 00002208: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000221d: AND 0000221e: PUSH4 0xa9059cbb 00002223: SWAP1 00002224: POP 00002225: PUSH1 0xe0 00002227: SHL 00002228: DUP5 00002229: DUP5 0000222a: PUSH1 0x40 0000222c: MLOAD 0000222d: PUSH1 0x24 0000222f: ADD 00002230: DUP1 00002231: DUP4 00002232: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002247: AND 00002248: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000225d: AND 0000225e: DUP2 0000225f: MSTORE 00002260: PUSH1 0x20 00002262: ADD 00002263: DUP3 00002264: DUP2 00002265: MSTORE 00002266: PUSH1 0x20 00002268: ADD 00002269: SWAP3 0000226a: POP 0000226b: POP 0000226c: POP 0000226d: PUSH1 0x40 0000226f: MLOAD 00002270: PUSH1 0x20 00002272: DUP2 00002273: DUP4 00002274: SUB 00002275: SUB 00002276: DUP2 00002277: MSTORE 00002278: SWAP1 00002279: PUSH1 0x40 0000227b: MSTORE 0000227c: SWAP1 0000227d: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000229a: NOT 0000229b: AND 0000229c: PUSH1 0x20 0000229e: DUP3 0000229f: ADD 000022a0: DUP1 000022a1: MLOAD 000022a2: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000022bf: DUP4 000022c0: DUP2 000022c1: DUP4 000022c2: AND 000022c3: OR 000022c4: DUP4 000022c5: MSTORE 000022c6: POP 000022c7: POP 000022c8: POP 000022c9: POP 000022ca: PUSH2 0x265a 000022cd: JUMP 000022ce: JUMPDEST 000022cf: POP 000022d0: POP 000022d1: POP 000022d2: JUMP 000022d3: JUMPDEST 000022d4: PUSH2 0x23d3 000022d7: DUP5 000022d8: DUP6 000022d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022ee: AND 000022ef: PUSH4 0x23b872dd 000022f4: SWAP1 000022f5: POP 000022f6: PUSH1 0xe0 000022f8: SHL 000022f9: DUP6 000022fa: DUP6 000022fb: DUP6 000022fc: PUSH1 0x40 000022fe: MLOAD 000022ff: PUSH1 0x24 00002301: ADD 00002302: DUP1 00002303: DUP5 00002304: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002319: AND 0000231a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000232f: AND 00002330: DUP2 00002331: MSTORE 00002332: PUSH1 0x20 00002334: ADD 00002335: DUP4 00002336: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000234b: AND 0000234c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002361: AND 00002362: DUP2 00002363: MSTORE 00002364: PUSH1 0x20 00002366: ADD 00002367: DUP3 00002368: DUP2 00002369: MSTORE 0000236a: PUSH1 0x20 0000236c: ADD 0000236d: SWAP4 0000236e: POP 0000236f: POP 00002370: POP 00002371: POP 00002372: PUSH1 0x40 00002374: MLOAD 00002375: PUSH1 0x20 00002377: DUP2 00002378: DUP4 00002379: SUB 0000237a: SUB 0000237b: DUP2 0000237c: MSTORE 0000237d: SWAP1 0000237e: PUSH1 0x40 00002380: MSTORE 00002381: SWAP1 00002382: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000239f: NOT 000023a0: AND 000023a1: PUSH1 0x20 000023a3: DUP3 000023a4: ADD 000023a5: DUP1 000023a6: MLOAD 000023a7: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000023c4: DUP4 000023c5: DUP2 000023c6: DUP4 000023c7: AND 000023c8: OR 000023c9: DUP4 000023ca: MSTORE 000023cb: POP 000023cc: POP 000023cd: POP 000023ce: POP 000023cf: PUSH2 0x265a 000023d2: JUMP 000023d3: JUMPDEST 000023d4: POP 000023d5: POP 000023d6: POP 000023d7: POP 000023d8: JUMP 000023d9: JUMPDEST 000023da: PUSH1 0x00 000023dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023f1: AND 000023f2: DUP3 000023f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002408: AND 00002409: EQ 0000240a: ISZERO 0000240b: PUSH2 0x247c 0000240e: JUMPI 0000240f: PUSH1 0x40 00002411: MLOAD 00002412: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002433: DUP2 00002434: MSTORE 00002435: PUSH1 0x04 00002437: ADD 00002438: DUP1 00002439: DUP1 0000243a: PUSH1 0x20 0000243c: ADD 0000243d: DUP3 0000243e: DUP2 0000243f: SUB 00002440: DUP3 00002441: MSTORE 00002442: PUSH1 0x1f 00002444: DUP2 00002445: MSTORE 00002446: PUSH1 0x20 00002448: ADD 00002449: DUP1 0000244a: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300 0000246b: DUP2 0000246c: MSTORE 0000246d: POP 0000246e: PUSH1 0x20 00002470: ADD 00002471: SWAP2 00002472: POP 00002473: POP 00002474: PUSH1 0x40 00002476: MLOAD 00002477: DUP1 00002478: SWAP2 00002479: SUB 0000247a: SWAP1 0000247b: REVERT 0000247c: JUMPDEST 0000247d: PUSH2 0x2491 00002480: DUP2 00002481: PUSH1 0x02 00002483: SLOAD 00002484: PUSH2 0x217a 00002487: SWAP1 00002488: SWAP2 00002489: SWAP1 0000248a: PUSH4 0xffffffff 0000248f: AND 00002490: JUMP 00002491: JUMPDEST 00002492: PUSH1 0x02 00002494: DUP2 00002495: SWAP1 00002496: SSTORE 00002497: POP 00002498: PUSH2 0x24e8 0000249b: DUP2 0000249c: PUSH1 0x00 0000249e: DUP1 0000249f: DUP6 000024a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024b5: AND 000024b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024cb: AND 000024cc: DUP2 000024cd: MSTORE 000024ce: PUSH1 0x20 000024d0: ADD 000024d1: SWAP1 000024d2: DUP2 000024d3: MSTORE 000024d4: PUSH1 0x20 000024d6: ADD 000024d7: PUSH1 0x00 000024d9: KECCAK256 000024da: SLOAD 000024db: PUSH2 0x217a 000024de: SWAP1 000024df: SWAP2 000024e0: SWAP1 000024e1: PUSH4 0xffffffff 000024e6: AND 000024e7: JUMP 000024e8: JUMPDEST 000024e9: PUSH1 0x00 000024eb: DUP1 000024ec: DUP5 000024ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002502: AND 00002503: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002518: AND 00002519: DUP2 0000251a: MSTORE 0000251b: PUSH1 0x20 0000251d: ADD 0000251e: SWAP1 0000251f: DUP2 00002520: MSTORE 00002521: PUSH1 0x20 00002523: ADD 00002524: PUSH1 0x00 00002526: KECCAK256 00002527: DUP2 00002528: SWAP1 00002529: SSTORE 0000252a: POP 0000252b: DUP2 0000252c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002541: AND 00002542: PUSH1 0x00 00002544: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002559: AND 0000255a: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 0000257b: DUP4 0000257c: PUSH1 0x40 0000257e: MLOAD 0000257f: DUP1 00002580: DUP3 00002581: DUP2 00002582: MSTORE 00002583: PUSH1 0x20 00002585: ADD 00002586: SWAP2 00002587: POP 00002588: POP 00002589: PUSH1 0x40 0000258b: MLOAD 0000258c: DUP1 0000258d: SWAP2 0000258e: SUB 0000258f: SWAP1 00002590: LOG3 00002591: POP 00002592: POP 00002593: JUMP 00002594: JUMPDEST 00002595: PUSH1 0x00 00002597: DUP1 00002598: DUP4 00002599: GT 0000259a: DUP3 0000259b: SWAP1 0000259c: PUSH2 0x2640 0000259f: JUMPI 000025a0: PUSH1 0x40 000025a2: MLOAD 000025a3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000025c4: DUP2 000025c5: MSTORE 000025c6: PUSH1 0x04 000025c8: ADD 000025c9: DUP1 000025ca: DUP1 000025cb: PUSH1 0x20 000025cd: ADD 000025ce: DUP3 000025cf: DUP2 000025d0: SUB 000025d1: DUP3 000025d2: MSTORE 000025d3: DUP4 000025d4: DUP2 000025d5: DUP2 000025d6: MLOAD 000025d7: DUP2 000025d8: MSTORE 000025d9: PUSH1 0x20 000025db: ADD 000025dc: SWAP2 000025dd: POP 000025de: DUP1 000025df: MLOAD 000025e0: SWAP1 000025e1: PUSH1 0x20 000025e3: ADD 000025e4: SWAP1 000025e5: DUP1 000025e6: DUP4 000025e7: DUP4 000025e8: PUSH1 0x00 000025ea: JUMPDEST 000025eb: DUP4 000025ec: DUP2 000025ed: LT 000025ee: ISZERO 000025ef: PUSH2 0x2605 000025f2: JUMPI 000025f3: DUP1 000025f4: DUP3 000025f5: ADD 000025f6: MLOAD 000025f7: DUP2 000025f8: DUP5 000025f9: ADD 000025fa: MSTORE 000025fb: PUSH1 0x20 000025fd: DUP2 000025fe: ADD 000025ff: SWAP1 00002600: POP 00002601: PUSH2 0x25ea 00002604: JUMP 00002605: JUMPDEST 00002606: POP 00002607: POP 00002608: POP 00002609: POP 0000260a: SWAP1 0000260b: POP 0000260c: SWAP1 0000260d: DUP2 0000260e: ADD 0000260f: SWAP1 00002610: PUSH1 0x1f 00002612: AND 00002613: DUP1 00002614: ISZERO 00002615: PUSH2 0x2632 00002618: JUMPI 00002619: DUP1 0000261a: DUP3 0000261b: SUB 0000261c: DUP1 0000261d: MLOAD 0000261e: PUSH1 0x01 00002620: DUP4 00002621: PUSH1 0x20 00002623: SUB 00002624: PUSH2 0x0100 00002627: EXP 00002628: SUB 00002629: NOT 0000262a: AND 0000262b: DUP2 0000262c: MSTORE 0000262d: PUSH1 0x20 0000262f: ADD 00002630: SWAP2 00002631: POP 00002632: JUMPDEST 00002633: POP 00002634: SWAP3 00002635: POP 00002636: POP 00002637: POP 00002638: PUSH1 0x40 0000263a: MLOAD 0000263b: DUP1 0000263c: SWAP2 0000263d: SUB 0000263e: SWAP1 0000263f: REVERT 00002640: JUMPDEST 00002641: POP 00002642: PUSH1 0x00 00002644: DUP4 00002645: DUP6 00002646: DUP2 00002647: PUSH2 0x264c 0000264a: JUMPI 0000264b: INVALID 0000264c: JUMPDEST 0000264d: DIV 0000264e: SWAP1 0000264f: POP 00002650: DUP1 00002651: SWAP2 00002652: POP 00002653: POP 00002654: SWAP4 00002655: SWAP3 00002656: POP 00002657: POP 00002658: POP 00002659: JUMP 0000265a: JUMPDEST 0000265b: PUSH2 0x2679 0000265e: DUP3 0000265f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002674: AND 00002675: PUSH2 0x28a5 00002678: JUMP 00002679: JUMPDEST 0000267a: PUSH2 0x26eb 0000267d: JUMPI 0000267e: PUSH1 0x40 00002680: MLOAD 00002681: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000026a2: DUP2 000026a3: MSTORE 000026a4: PUSH1 0x04 000026a6: ADD 000026a7: DUP1 000026a8: DUP1 000026a9: PUSH1 0x20 000026ab: ADD 000026ac: DUP3 000026ad: DUP2 000026ae: SUB 000026af: DUP3 000026b0: MSTORE 000026b1: PUSH1 0x1f 000026b3: DUP2 000026b4: MSTORE 000026b5: PUSH1 0x20 000026b7: ADD 000026b8: DUP1 000026b9: PUSH32 0x5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400 000026da: DUP2 000026db: MSTORE 000026dc: POP 000026dd: PUSH1 0x20 000026df: ADD 000026e0: SWAP2 000026e1: POP 000026e2: POP 000026e3: PUSH1 0x40 000026e5: MLOAD 000026e6: DUP1 000026e7: SWAP2 000026e8: SUB 000026e9: SWAP1 000026ea: REVERT 000026eb: JUMPDEST 000026ec: PUSH1 0x00 000026ee: PUSH1 0x60 000026f0: DUP4 000026f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002706: AND 00002707: DUP4 00002708: PUSH1 0x40 0000270a: MLOAD 0000270b: DUP1 0000270c: DUP3 0000270d: DUP1 0000270e: MLOAD 0000270f: SWAP1 00002710: PUSH1 0x20 00002712: ADD 00002713: SWAP1 00002714: DUP1 00002715: DUP4 00002716: DUP4 00002717: JUMPDEST 00002718: PUSH1 0x20 0000271a: DUP4 0000271b: LT 0000271c: PUSH2 0x273a 0000271f: JUMPI 00002720: DUP1 00002721: MLOAD 00002722: DUP3 00002723: MSTORE 00002724: PUSH1 0x20 00002726: DUP3 00002727: ADD 00002728: SWAP2 00002729: POP 0000272a: PUSH1 0x20 0000272c: DUP2 0000272d: ADD 0000272e: SWAP1 0000272f: POP 00002730: PUSH1 0x20 00002732: DUP4 00002733: SUB 00002734: SWAP3 00002735: POP 00002736: PUSH2 0x2717 00002739: JUMP 0000273a: JUMPDEST 0000273b: PUSH1 0x01 0000273d: DUP4 0000273e: PUSH1 0x20 00002740: SUB 00002741: PUSH2 0x0100 00002744: EXP 00002745: SUB 00002746: DUP1 00002747: NOT 00002748: DUP3 00002749: MLOAD 0000274a: AND 0000274b: DUP2 0000274c: DUP5 0000274d: MLOAD 0000274e: AND 0000274f: DUP1 00002750: DUP3 00002751: OR 00002752: DUP6 00002753: MSTORE 00002754: POP 00002755: POP 00002756: POP 00002757: POP 00002758: POP 00002759: POP 0000275a: SWAP1 0000275b: POP 0000275c: ADD 0000275d: SWAP2 0000275e: POP 0000275f: POP 00002760: PUSH1 0x00 00002762: PUSH1 0x40 00002764: MLOAD 00002765: DUP1 00002766: DUP4 00002767: SUB 00002768: DUP2 00002769: PUSH1 0x00 0000276b: DUP7 0000276c: GAS 0000276d: CALL 0000276e: SWAP2 0000276f: POP 00002770: POP 00002771: RETURNDATASIZE 00002772: DUP1 00002773: PUSH1 0x00 00002775: DUP2 00002776: EQ 00002777: PUSH2 0x279c 0000277a: JUMPI 0000277b: PUSH1 0x40 0000277d: MLOAD 0000277e: SWAP2 0000277f: POP 00002780: PUSH1 0x1f 00002782: NOT 00002783: PUSH1 0x3f 00002785: RETURNDATASIZE 00002786: ADD 00002787: AND 00002788: DUP3 00002789: ADD 0000278a: PUSH1 0x40 0000278c: MSTORE 0000278d: RETURNDATASIZE 0000278e: DUP3 0000278f: MSTORE 00002790: RETURNDATASIZE 00002791: PUSH1 0x00 00002793: PUSH1 0x20 00002795: DUP5 00002796: ADD 00002797: RETURNDATACOPY 00002798: PUSH2 0x27a1 0000279b: JUMP 0000279c: JUMPDEST 0000279d: PUSH1 0x60 0000279f: SWAP2 000027a0: POP 000027a1: JUMPDEST 000027a2: POP 000027a3: SWAP2 000027a4: POP 000027a5: SWAP2 000027a6: POP 000027a7: DUP2 000027a8: PUSH2 0x2819 000027ab: JUMPI 000027ac: PUSH1 0x40 000027ae: MLOAD 000027af: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000027d0: DUP2 000027d1: MSTORE 000027d2: PUSH1 0x04 000027d4: ADD 000027d5: DUP1 000027d6: DUP1 000027d7: PUSH1 0x20 000027d9: ADD 000027da: DUP3 000027db: DUP2 000027dc: SUB 000027dd: DUP3 000027de: MSTORE 000027df: PUSH1 0x20 000027e1: DUP2 000027e2: MSTORE 000027e3: PUSH1 0x20 000027e5: ADD 000027e6: DUP1 000027e7: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00002808: DUP2 00002809: MSTORE 0000280a: POP 0000280b: PUSH1 0x20 0000280d: ADD 0000280e: SWAP2 0000280f: POP 00002810: POP 00002811: PUSH1 0x40 00002813: MLOAD 00002814: DUP1 00002815: SWAP2 00002816: SUB 00002817: SWAP1 00002818: REVERT 00002819: JUMPDEST 0000281a: PUSH1 0x00 0000281c: DUP2 0000281d: MLOAD 0000281e: GT 0000281f: ISZERO 00002820: PUSH2 0x289f 00002823: JUMPI 00002824: DUP1 00002825: DUP1 00002826: PUSH1 0x20 00002828: ADD 00002829: SWAP1 0000282a: MLOAD 0000282b: PUSH1 0x20 0000282d: DUP2 0000282e: LT 0000282f: ISZERO 00002830: PUSH2 0x2838 00002833: JUMPI 00002834: PUSH1 0x00 00002836: DUP1 00002837: REVERT 00002838: JUMPDEST 00002839: DUP2 0000283a: ADD 0000283b: SWAP1 0000283c: DUP1 0000283d: DUP1 0000283e: MLOAD 0000283f: SWAP1 00002840: PUSH1 0x20 00002842: ADD 00002843: SWAP1 00002844: SWAP3 00002845: SWAP2 00002846: SWAP1 00002847: POP 00002848: POP 00002849: POP 0000284a: PUSH2 0x289e 0000284d: JUMPI 0000284e: PUSH1 0x40 00002850: MLOAD 00002851: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002872: DUP2 00002873: MSTORE 00002874: PUSH1 0x04 00002876: ADD 00002877: DUP1 00002878: DUP1 00002879: PUSH1 0x20 0000287b: ADD 0000287c: DUP3 0000287d: DUP2 0000287e: SUB 0000287f: DUP3 00002880: MSTORE 00002881: PUSH1 0x2a 00002883: DUP2 00002884: MSTORE 00002885: PUSH1 0x20 00002887: ADD 00002888: DUP1 00002889: PUSH2 0x2a31 0000288c: PUSH1 0x2a 0000288e: SWAP2 0000288f: CODECOPY 00002890: PUSH1 0x40 00002892: ADD 00002893: SWAP2 00002894: POP 00002895: POP 00002896: PUSH1 0x40 00002898: MLOAD 00002899: DUP1 0000289a: SWAP2 0000289b: SUB 0000289c: SWAP1 0000289d: REVERT 0000289e: JUMPDEST 0000289f: JUMPDEST 000028a0: POP 000028a1: POP 000028a2: POP 000028a3: POP 000028a4: JUMP 000028a5: JUMPDEST 000028a6: PUSH1 0x00 000028a8: DUP1 000028a9: PUSH1 0x00 000028ab: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 000028cc: PUSH1 0x00 000028ce: SHL 000028cf: SWAP1 000028d0: POP 000028d1: DUP4 000028d2: EXTCODEHASH 000028d3: SWAP2 000028d4: POP 000028d5: PUSH1 0x00 000028d7: DUP1 000028d8: SHL 000028d9: DUP3 000028da: EQ 000028db: ISZERO 000028dc: DUP1 000028dd: ISZERO 000028de: PUSH2 0x28e7 000028e1: JUMPI 000028e2: POP 000028e3: DUP1 000028e4: DUP3 000028e5: EQ 000028e6: ISZERO 000028e7: JUMPDEST 000028e8: SWAP3 000028e9: POP 000028ea: POP 000028eb: POP 000028ec: SWAP2 000028ed: SWAP1 000028ee: POP 000028ef: JUMP 000028f0: INVALID 000028f1: GASLIMIT 000028f2: MSTORE 000028f3: NUMBER 000028f4: ORIGIN 000028f5: ADDRESS 000028f6: GASPRICE 000028f7: KECCAK256 000028f8: PUSH21 0x72616e7366657220746f20746865207a65726f2061 0000290e: PUSH5 0x6472657373 00002914: GASLIMIT 00002915: MSTORE 00002916: NUMBER 00002917: ORIGIN 00002918: ADDRESS 00002919: GASPRICE 0000291a: KECCAK256 0000291b: PUSH3 0x75726e 0000291f: KECCAK256 00002920: PUSH2 0x6d6f 00002923: PUSH22 0x6e7420657863656564732062616c616e636545524332 0000293a: ADDRESS 0000293b: GASPRICE 0000293c: KECCAK256 0000293d: PUSH2 0x7070 00002940: PUSH19 0x6f766520746f20746865207a65726f20616464 00002954: PUSH19 0x65737345524332303a207472616e7366657220 00002968: PUSH2 0x6d6f 0000296b: PUSH22 0x6e7420657863656564732062616c616e636553616665 00002982: UNKNOWN(0x4D) 00002983: PUSH2 0x7468 00002986: GASPRICE 00002987: KECCAK256 00002988: PUSH14 0x756c7469706c69636174696f6e20 00002997: PUSH16 0x766572666c6f7745524332303a207472 000029a8: PUSH2 0x6e73 000029ab: PUSH7 0x657220616d6f75 000029b3: PUSH15 0x74206578636565647320616c6c6f77 000029c3: PUSH2 0x6e63 000029c6: PUSH6 0x45524332303a 000029cd: KECCAK256 000029ce: PUSH3 0x75726e 000029d2: KECCAK256 000029d3: PUSH7 0x726f6d20746865 000029db: KECCAK256 000029dc: PUSH27 0x65726f206164647265737345524332303a207472616e7366657220 000029f8: PUSH7 0x726f6d20746865 00002a00: KECCAK256 00002a01: PUSH27 0x65726f206164647265737345524332303a20617070726f76652066 00002a1d: PUSH19 0x6f6d20746865207a65726f2061646472657373 00002a31: MSTORE8 00002a32: PUSH2 0x6665 00002a35: GASLIMIT 00002a36: MSTORE 00002a37: NUMBER 00002a38: ORIGIN 00002a39: ADDRESS 00002a3a: GASPRICE 00002a3b: KECCAK256 00002a3c: GASLIMIT 00002a3d: MSTORE 00002a3e: NUMBER 00002a3f: ORIGIN 00002a40: ADDRESS 00002a41: KECCAK256 00002a42: PUSH16 0x7065726174696f6e20646964206e6f74 00002a53: KECCAK256 00002a54: PUSH20 0x75636365656445524332303a2064656372656173 00002a69: PUSH6 0x6420616c6c6f 00002a70: PUSH24 0x616e63652062656c6f77207a65726fa265627a7a72315820 00002a89: PUSH26 0xf8d577922ab95ef59e5dc1b898a1a35e416558ea1c8d73e40b2b 00002aa4: UNKNOWN(0xF8) 00002aa5: UNKNOWN(0xCC) 00002aa6: INVALID 00002aa7: PUSH23
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf77c4791",
"selector": "0xf77c4791",
"calldata_variants": [
"0xf77c4791",
"0xf77c47910000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8897945",
"selector": "0xf8897945",
"calldata_variants": [
"0xf8897945",
"0xf88979450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc0c546a",
"selector": "0xfc0c546a",
"calldata_variants": [
"0xfc0c546a",
"0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb69ef8a8",
"selector": "0xb69ef8a8",
"calldata_variants": [
"0xb69ef8a8",
"0xb69ef8a80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb6b55f25",
"selector": "0xb6b55f25",
"calldata_variants": [
"0xb6b55f25",
"0xb6b55f250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd389800f",
"selector": "0xd389800f",
"calldata_variants": [
"0xd389800f",
"0xd389800f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x77c7b8fc",
"selector": "0x77c7b8fc",
"calldata_variants": [
"0x77c7b8fc",
"0x77c7b8fc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 3695,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4347,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5007,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10484,
"type": "tx_origin_used"
},
{
"pc": 10519,
"type": "tx_origin_used"
},
{
"pc": 10808,
"type": "tx_origin_used"
},
{
"pc": 10815,
"type": "tx_origin_used"
}
]
}
|
| medium | math | codex | Share inflation via donations can force zero-share mints and steal deposits | 75 | no | — |
viewevidence_json{
"evidence": "deposit() calculates shares using `_pool = balance()` and only checks `_pool==0`, so if `totalSupply()==0` but `_pool>0` (via donations), `shares = (_amount * totalSupply) / _pool` becomes 0; similarly, an inflated `_pool` with low `totalSupply` can force extreme truncation.",
"locations": [
"contracts/Contract.sol:322",
"contracts/Contract.sol:326",
"contracts/Contract.sol:329",
"contracts/Contract.sol:331"
],
"recommendation": "Guard the initial mint based on `totalSupply()` (not just `_pool`) and prevent zero-share mints. Common mitigations: revert if `totalSupply()==0 && _pool>0`, mint a small non-withdrawable \u201cseed\u201d amount to a burn address, add virtual shares/liquidity, and/or require `shares > 0` to proceed.",
"exploit_scenario": "An attacker deposits a minimal amount to mint 1 share, then directly transfers (donates) a large amount of underlying tokens to the vault, inflating `_pool` without increasing `totalSupply`. A victim who deposits afterward receives `shares = amount * totalSupply / _pool`, which truncates to 0 when the donated amount exceeds the victim\u2019s deposit. The attacker then withdraws their single share and receives essentially the entire pool, including the victim\u2019s deposit. A related griefing case exists if tokens are donated before the first deposit (totalSupply==0 but _pool>0), causing all deposits to mint 0 shares and locking funds."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x6962a5225bec788634261fc423a1beb0b0f406e81f0a2f54682e3622b329774f
call_targets:
0x597ad1e0c13bfe8025993d9e79c69e1c0233522e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x6962a5225bec788634261fc423a1beb0b0f406e81f0a2f54682e3622b329774f",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x597ad1e0c13bfe8025993d9e79c69e1c0233522e"
],
"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": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf77c4791",
"selector": "0xf77c4791",
"calldata_variants": [
"0xf77c4791",
"0xf77c47910000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8897945",
"selector": "0xf8897945",
"calldata_variants": [
"0xf8897945",
"0xf88979450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc0c546a",
"selector": "0xfc0c546a",
"calldata_variants": [
"0xfc0c546a",
"0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb69ef8a8",
"selector": "0xb69ef8a8",
"calldata_variants": [
"0xb69ef8a8",
"0xb69ef8a80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb6b55f25",
"selector": "0xb6b55f25",
"calldata_variants": [
"0xb6b55f25",
"0xb6b55f250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd389800f",
"selector": "0xd389800f",
"calldata_variants": [
"0xd389800f",
"0xd389800f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x77c7b8fc",
"selector": "0x77c7b8fc",
"calldata_variants": [
"0x77c7b8fc",
"0x77c7b8fc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3053,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6210,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10093,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [
{
"pc": 3695,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4347,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5007,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10484,
"type": "tx_origin_used"
},
{
"pc": 10519,
"type": "tx_origin_used"
},
{
"pc": 10808,
"type": "tx_origin_used"
},
{
"pc": 10815,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 3
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x6962a5225bec788634261fc423a1beb0b0f406e81f0a2f54682e3622b329774f
call_targets:
0x597ad1e0c13bfe8025993d9e79c69e1c0233522e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x6962a5225bec788634261fc423a1beb0b0f406e81f0a2f54682e3622b329774f",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x597ad1e0c13bfe8025993d9e79c69e1c0233522e"
],
"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": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf77c4791",
"selector": "0xf77c4791",
"calldata_variants": [
"0xf77c4791",
"0xf77c47910000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8897945",
"selector": "0xf8897945",
"calldata_variants": [
"0xf8897945",
"0xf88979450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc0c546a",
"selector": "0xfc0c546a",
"calldata_variants": [
"0xfc0c546a",
"0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb69ef8a8",
"selector": "0xb69ef8a8",
"calldata_variants": [
"0xb69ef8a8",
"0xb69ef8a80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb6b55f25",
"selector": "0xb6b55f25",
"calldata_variants": [
"0xb6b55f25",
"0xb6b55f250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd389800f",
"selector": "0xd389800f",
"calldata_variants": [
"0xd389800f",
"0xd389800f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x77c7b8fc",
"selector": "0x77c7b8fc",
"calldata_variants": [
"0x77c7b8fc",
"0x77c7b8fc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3053,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6210,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10093,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": [
{
"pc": 3695,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4347,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5007,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10484,
"type": "tx_origin_used"
},
{
"pc": 10519,
"type": "tx_origin_used"
},
{
"pc": 10808,
"type": "tx_origin_used"
},
{
"pc": 10815,
"type": "tx_origin_used"
}
]
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 8
}
|