614e8405-f6c9-4781-bd65-282f3a654a08
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 |
|---|---|---|---|---|
| 30159 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 93553 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 93554 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 93555 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 93556 | capability.graph | complete | 1 / 3 | 1 week ago |
| 93557 | detector.run | complete | 1 / 3 | 1 week ago |
| 93558 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1315957] OpenAI Codex v0.77.0 (research preview)
[codex:1315957] --------
[codex:1315957] workdir: /tmp/codex-multi-rn2msm4b
[codex:1315957] model: gpt-5.2-codex
[codex:1315957] provider: openai
[codex:1315957] approval: never
[codex:1315957] sandbox: read-only
[codex:1315957] reasoning effort: none
[codex:1315957] reasoning summaries: auto
[codex:1315957] session id: 019b4de2-f32a-7900-83ec-398aea79b381
[codex:1315957] --------
[codex:1315957] user
[codex:1315957] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1315957] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1315957] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1315957]
[codex:1315957] Scope rules:
[codex:1315957] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1315957] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1315957]
[codex:1315957] Output MUST be valid JSON matching the provided schema.
[codex:1315957] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1315957] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1315957]
[codex:1315957] Output constraints (IMPORTANT):
[codex:1315957] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1315957] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1315957] mcp startup: no servers
[codex:1315957]
[codex:1315957] thinking
[codex:1315957] **Reading AUDIT_BUNDLE using shell**
[codex:1315957] exec
[codex:1315957] /bin/bash -lc ls in /tmp/codex-multi-rn2msm4b succeeded in 5ms:
[codex:1315957] AUDIT_BUNDLE.txt
[codex:1315957] codex-output-schema.json
[codex:1315957] contracts
[codex:1315957] exec
[codex:1315957] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1315957]
[codex:1315957] ================================================================================
[codex:1315957] FILE: contracts/lib/Solady/src/utils/LibString.sol
[codex:1315957] ================================================================================
[codex:1315957] // SPDX-License-Identifier: MIT
[codex:1315957] pragma solidity ^0.8.4;
[codex:1315957]
[codex:1315957] /// @notice Library for converting numbers into strings and other string operations.
[codex:1315957] /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)
[codex:1315957] /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)
[codex:1315957] ///
[codex:1315957] /// @dev Note:
[codex:1315957] /// For performance and bytecode compactness, most of the string operations are restricted to
[codex:1315957] /// byte strings (7-bit ASCII), except where otherwise specified.
[codex:1315957] /// Usage of byte string operations on charsets with runes spanning two or more bytes
[codex:1315957] /// can lead to undefined behavior.
[codex:1315957] library LibString {
[codex:1315957] /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
[codex:1315957] /* CUSTOM ERRORS */
[codex:1315957]
[codex:1315957] thinking
[codex:1315957] **Focusing on first-party contracts**
[codex:1315957] exec
[codex:1315957] /bin/bash -lc 'rg -n "FILE: contracts/src" AUDIT_BUNDLE.txt' in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] 2664:FILE: contracts/src/ActivePool.sol
[codex:1315957] 3013:FILE: contracts/src/Dependencies/Constants.sol
[codex:1315957] 3106:FILE: contracts/src/Interfaces/IActivePool.sol
[codex:1315957] 3156:FILE: contracts/src/Interfaces/IAddRemoveManagers.sol
[codex:1315957] 3171:FILE: contracts/src/Interfaces/IAddressesRegistry.sol
[codex:1315957] 3245:FILE: contracts/src/Interfaces/IBoldRewardsReceiver.sol
[codex:1315957] 3256:FILE: contracts/src/Interfaces/IBoldToken.sol
[codex:1315957] 3286:FILE: contracts/src/Interfaces/IBorrowerOperations.sol
[codex:1315957] 3464:FILE: contracts/src/Interfaces/ICollSurplusPool.sol
[codex:1315957] 3481:FILE: contracts/src/Interfaces/ICollateralRegistry.sol
[codex:1315957] 3511:FILE: contracts/src/Interfaces/IDefaultPool.sol
[codex:1315957] 3531:FILE: contracts/src/Interfaces/IHintHelpers.sol
[codex:1315957] 3576:FILE: contracts/src/Interfaces/IInterestRouter.sol
[codex:1315957] 3587:FILE: contracts/src/Interfaces/ILiquityBase.sol
[codex:1315957] 3604:FILE: contracts/src/Interfaces/IMultiTroveGetter.sol
[codex:1315957] 3648:FILE: contracts/src/Interfaces/IPriceFeed.sol
[codex:1315957] 3661:FILE: contracts/src/Interfaces/ISortedTroves.sol
[codex:1315957] 3719:FILE: contracts/src/Interfaces/IStabilityPool.sol
[codex:1315957] 3832:FILE: contracts/src/Interfaces/ITroveManager.sol
[codex:1315957] 4010:FILE: contracts/src/Interfaces/ITroveNFT.sol
[codex:1315957]
[codex:1315957] thinking
[codex:1315957] **Inspecting ActivePool contract**
[codex:1315957] exec
[codex:1315957] /bin/bash -lc "sed -n '2664,3012p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] FILE: contracts/src/ActivePool.sol
[codex:1315957] ================================================================================
[codex:1315957] // SPDX-License-Identifier: BUSL-1.1
[codex:1315957]
[codex:1315957] pragma solidity 0.8.24;
[codex:1315957]
[codex:1315957] import "openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1315957] import "openzeppelin-contracts/contracts/utils/math/Math.sol";
[codex:1315957]
[codex:1315957] import "./Dependencies/Constants.sol";
[codex:1315957] import "./Interfaces/IActivePool.sol";
[codex:1315957] import "./Interfaces/IAddressesRegistry.sol";
[codex:1315957] import "./Interfaces/IBoldToken.sol";
[codex:1315957] import "./Interfaces/IInterestRouter.sol";
[codex:1315957] import "./Interfaces/IDefaultPool.sol";
[codex:1315957]
[codex:1315957] /*
[codex:1315957] * The Active Pool holds the collateral and Bold debt (but not Bold tokens) for all active troves.
[codex:1315957] *
[codex:1315957] * When a trove is liquidated, it's Coll and Bold debt are transferred from the Active Pool, to either the
[codex:1315957]
[codex:1315957] thinking
[codex:1315957] **Analyzing ActivePool for reentrancy risks**
[codex:1315957]
[codex:1315957] I'm examining ActivePool as the main contract with external calls that could mean reentrancy vulnerabilities, especially via the boldToken minting and stabilityPool interactions. The key issue seems to be external calls happening before state updates like lastAggUpdateTime, which might allow repeated minting. I’m also assessing related system contracts like defaultPool and borrowerOperations to understand trust boundaries and potential exploits. This requires careful attention to call sequences and authorization checks.
[codex:1315957] exec
[codex:1315957] /bin/bash -lc "sed -n '3719,3831p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] FILE: contracts/src/Interfaces/IStabilityPool.sol
[codex:1315957] ================================================================================
[codex:1315957] // SPDX-License-Identifier: MIT
[codex:1315957]
[codex:1315957] pragma solidity ^0.8.0;
[codex:1315957]
[codex:1315957] import "./IActivePool.sol";
[codex:1315957] import "./ILiquityBase.sol";
[codex:1315957] import "./IBoldToken.sol";
[codex:1315957] import "./ITroveManager.sol";
[codex:1315957] import "./IBoldRewardsReceiver.sol";
[codex:1315957]
[codex:1315957] /*
[codex:1315957] * The Stability Pool holds Bold tokens deposited by Stability Pool depositors.
[codex:1315957] *
[codex:1315957] * When a trove is liquidated, then depending on system conditions, some of its Bold debt gets offset with
[codex:1315957] * Bold in the Stability Pool: that is, the offset debt evaporates, and an equal amount of Bold tokens in the Stability Pool is burned.
[codex:1315957] *
[codex:1315957] * Thus, a liquidation causes each depositor to receive a Bold loss, in proportion to their deposit as a share of total deposits.
[codex:1315957] * They also receive an Coll gain, as the collateral of the liquidated trove is distributed among Stability depositors,
[codex:1315957]
[codex:1315957] thinking
[codex:1315957] **Identifying reentrancy concerns**
[codex:1315957] exec
[codex:1315957] /bin/bash -lc "sed -n '3245,3285p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] FILE: contracts/src/Interfaces/IBoldRewardsReceiver.sol
[codex:1315957] ================================================================================
[codex:1315957] // SPDX-License-Identifier: MIT
[codex:1315957]
[codex:1315957] pragma solidity ^0.8.0;
[codex:1315957]
[codex:1315957] interface IBoldRewardsReceiver {
[codex:1315957] function triggerBoldRewards(uint256 _boldYield) external;
[codex:1315957] }
[codex:1315957]
[codex:1315957] ================================================================================
[codex:1315957] FILE: contracts/src/Interfaces/IBoldToken.sol
[codex:1315957] ================================================================================
[codex:1315957] // SPDX-License-Identifier: MIT
[codex:1315957]
[codex:1315957] pragma solidity ^0.8.0;
[codex:1315957]
[codex:1315957] import "openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1315957] import "openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol";
[codex:1315957] import "openzeppelin-contracts/contracts/interfaces/IERC5267.sol";
[codex:1315957]
[codex:1315957] thinking
[codex:1315957] **Considering locations for potential issues**
[codex:1315957] exec
[codex:1315957] /bin/bash -lc "nl -ba contracts/src/ActivePool.sol | sed -n '1,240p'" in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] 1 // SPDX-License-Identifier: BUSL-1.1
[codex:1315957] 2
[codex:1315957] 3 pragma solidity 0.8.24;
[codex:1315957] 4
[codex:1315957] 5 import "openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1315957] 6 import "openzeppelin-contracts/contracts/utils/math/Math.sol";
[codex:1315957] 7
[codex:1315957] 8 import "./Dependencies/Constants.sol";
[codex:1315957] 9 import "./Interfaces/IActivePool.sol";
[codex:1315957] 10 import "./Interfaces/IAddressesRegistry.sol";
[codex:1315957] 11 import "./Interfaces/IBoldToken.sol";
[codex:1315957] 12 import "./Interfaces/IInterestRouter.sol";
[codex:1315957] 13 import "./Interfaces/IDefaultPool.sol";
[codex:1315957] 14
[codex:1315957] 15 /*
[codex:1315957] 16 * The Active Pool holds the collateral and Bold debt (but not Bold tokens) for all active troves.
[codex:1315957] 17 *
[codex:1315957] 18 * When a trove is liquidated, it's Coll and Bold debt are transferred from the Active Pool, to either the
[codex:1315957] 19 * Stability Pool, the Default Pool, or both, depending on the liquidation conditions.
[codex:1315957] 20 *
[codex:1315957] exec
[codex:1315957] /bin/bash -lc "nl -ba contracts/src/ActivePool.sol | sed -n '240,420p'" in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] 240 aggWeightedDebtSum = newAggWeightedDebtSum; // 1 SSTORE
[codex:1315957] 241 }
[codex:1315957] 242
[codex:1315957] 243 function mintAggInterest() external override {
[codex:1315957] 244 _requireCallerIsBOorSP();
[codex:1315957] 245 aggRecordedDebt += _mintAggInterest(0);
[codex:1315957] 246 }
[codex:1315957] 247
[codex:1315957] 248 function _mintAggInterest(uint256 _upfrontFee) internal returns (uint256 mintedAmount) {
[codex:1315957] 249 mintedAmount = calcPendingAggInterest() + _upfrontFee;
[codex:1315957] 250
[codex:1315957] 251 // Mint part of the BOLD interest to the SP and part to the router for LPs.
[codex:1315957] 252 if (mintedAmount > 0) {
[codex:1315957] 253 uint256 spYield = SP_YIELD_SPLIT * mintedAmount / DECIMAL_PRECISION;
[codex:1315957] 254 uint256 remainderToLPs = mintedAmount - spYield;
[codex:1315957] 255
[codex:1315957] 256 boldToken.mint(address(interestRouter), remainderToLPs);
[codex:1315957] 257
[codex:1315957] 258 if (spYield > 0) {
[codex:1315957] 259 boldToken.mint(address(stabilityPool), spYield);
[codex:1315957]
[codex:1315957] thinking
[codex:1315957] **Generating JSON schema for reentrancy finding**
[codex:1315957] codex
[codex:1315957] {"no_findings":false,"summary":"Found a reentrancy risk in ActivePool’s interest minting flow where external calls occur before state updates, which can allow repeated interest minting if the callee reenters.","findings":[{"severity":"medium","category":"reentrancy","title":"Interest can be minted multiple times via reentrancy before lastAggUpdateTime is updated","exploit_scenario":"If the StabilityPool implementation (or another authorized caller) reenters during `stabilityPool.triggerBoldRewards` inside `_mintAggInterest`, it can call `mintAggInterest()` or `mintAggInterestAndAccountForTroveChange()` again before `lastAggUpdateTime` is set. Because `calcPendingAggInterest()` still uses the old timestamp, the same interest window can be minted repeatedly, inflating BOLD supply and recorded debt.","recommendation":"Apply checks-effects-interactions: update `lastAggUpdateTime` (and any other relevant aggregate state) before external calls, or add a reentrancy guard to `mintAggInterest`/`mintAggInterestAndAccountForTroveChange`. Alternatively, split reward distribution so external calls happen after all state updates.","evidence":"`_mintAggInterest` performs `boldToken.mint(...)` and `stabilityPool.triggerBoldRewards(...)` before setting `lastAggUpdateTime = block.timestamp`.","locations":["contracts/src/ActivePool.sol:248","contracts/src/ActivePool.sol:256","contracts/src/ActivePool.sol:259","contracts/src/ActivePool.sol:264"]}]}
[codex:1315957] tokens used
[codex:1315957] 29,443
[codex:1315957] {"no_findings":false,"summary":"Found a reentrancy risk in ActivePool’s interest minting flow where external calls occur before state updates, which can allow repeated interest minting if the callee reenters.","findings":[{"severity":"medium","category":"reentrancy","title":"Interest can be minted multiple times via reentrancy before lastAggUpdateTime is updated","exploit_scenario":"If the StabilityPool implementation (or another authorized caller) reenters during `stabilityPool.triggerBoldRewards` inside `_mintAggInterest`, it can call `mintAggInterest()` or `mintAggInterestAndAccountForTroveChange()` again before `lastAggUpdateTime` is set. Because `calcPendingAggInterest()` still uses the old timestamp, the same interest window can be minted repeatedly, inflating BOLD supply and recorded debt.","recommendation":"Apply checks-effects-interactions: update `lastAggUpdateTime` (and any other relevant aggregate state) before external calls, or add a reentrancy guard to `mintAggInterest`/`mintAggInterestAndAccountForTroveChange`. Alternatively, split reward distribution so external calls happen after all state updates.","evidence":"`_mintAggInterest` performs `boldToken.mint(...)` and `stabilityPool.triggerBoldRewards(...)` before setting `lastAggUpdateTime = block.timestamp`.","locations":["contracts/src/ActivePool.sol:248","contracts/src/ActivePool.sol:256","contracts/src/ActivePool.sol:259","contracts/src/ActivePool.sol:264"]}]}
{
"codex": {
"ran_at": "2025-12-24T01:05:37.637602+00:00",
"returncode": 0
},
"summary": "Found a reentrancy risk in ActivePool\u2019s interest minting flow where external calls occur before state updates, which can allow repeated interest minting if the callee reenters.",
"raw_final": {
"summary": "Found a reentrancy risk in ActivePool\u2019s interest minting flow where external calls occur before state updates, which can allow repeated interest minting if the callee reenters.",
"findings": [
{
"title": "Interest can be minted multiple times via reentrancy before lastAggUpdateTime is updated",
"category": "reentrancy",
"evidence": "`_mintAggInterest` performs `boldToken.mint(...)` and `stabilityPool.triggerBoldRewards(...)` before setting `lastAggUpdateTime = block.timestamp`.",
"severity": "medium",
"locations": [
"contracts/src/ActivePool.sol:248",
"contracts/src/ActivePool.sol:256",
"contracts/src/ActivePool.sol:259",
"contracts/src/ActivePool.sol:264"
],
"recommendation": "Apply checks-effects-interactions: update `lastAggUpdateTime` (and any other relevant aggregate state) before external calls, or add a reentrancy guard to `mintAggInterest`/`mintAggInterestAndAccountForTroveChange`. Alternatively, split reward distribution so external calls happen after all state updates.",
"exploit_scenario": "If the StabilityPool implementation (or another authorized caller) reenters during `stabilityPool.triggerBoldRewards` inside `_mintAggInterest`, it can call `mintAggInterest()` or `mintAggInterestAndAccountForTroveChange()` again before `lastAggUpdateTime` is set. Because `calcPendingAggInterest()` still uses the old timestamp, the same interest window can be minted repeatedly, inflating BOLD supply and recorded debt."
}
],
"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 0x000f 0000000b: JUMPI 0000000c: PUSH0 0000000d: DUP1 0000000e: REVERT 0000000f: JUMPDEST 00000010: POP 00000011: PUSH1 0x04 00000013: CALLDATASIZE 00000014: LT 00000015: PUSH2 0x01d1 00000018: JUMPI 00000019: PUSH0 0000001a: CALLDATALOAD 0000001b: PUSH1 0xe0 0000001d: SHR 0000001e: DUP1 0000001f: PUSH4 0x71d4eb21 00000024: GT 00000025: PUSH2 0x00fe 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xaac1846f 0000002f: GT 00000030: PUSH2 0x009e 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xd0ee2ace 0000003a: GT 0000003b: PUSH2 0x006e 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xd0ee2ace 00000045: EQ 00000046: PUSH2 0x0408 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xdd9fbcb8 00000050: EQ 00000051: PUSH2 0x042f 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf6e413f5 0000005b: EQ 0000005c: PUSH2 0x0442 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xfa160c05 00000066: EQ 00000067: PUSH2 0x044b 0000006a: JUMPI 0000006b: PUSH0 0000006c: DUP1 0000006d: REVERT 0000006e: JUMPDEST 0000006f: DUP1 00000070: PUSH4 0xaac1846f 00000075: EQ 00000076: PUSH2 0x039e 00000079: JUMPI 0000007a: DUP1 0000007b: PUSH4 0xac8bbc49 00000080: EQ 00000081: PUSH2 0x03c5 00000084: JUMPI 00000085: DUP1 00000086: PUSH4 0xb7f8cf9b 0000008b: EQ 0000008c: PUSH2 0x03ce 0000008f: JUMPI 00000090: DUP1 00000091: PUSH4 0xc2283f1f 00000096: EQ 00000097: PUSH2 0x03f5 0000009a: JUMPI 0000009b: PUSH0 0000009c: DUP1 0000009d: REVERT 0000009e: JUMPDEST 0000009f: DUP1 000000a0: PUSH4 0x85fe37a3 000000a5: GT 000000a6: PUSH2 0x00d9 000000a9: JUMPI 000000aa: DUP1 000000ab: PUSH4 0x85fe37a3 000000b0: EQ 000000b1: PUSH2 0x0339 000000b4: JUMPI 000000b5: DUP1 000000b6: PUSH4 0x8d5c1d4c 000000bb: EQ 000000bc: PUSH2 0x034c 000000bf: JUMPI 000000c0: DUP1 000000c1: PUSH4 0x9f4e511e 000000c6: EQ 000000c7: PUSH2 0x0355 000000ca: JUMPI 000000cb: DUP1 000000cc: PUSH4 0xa3f4df7e 000000d1: EQ 000000d2: PUSH2 0x0368 000000d5: JUMPI 000000d6: PUSH0 000000d7: DUP1 000000d8: REVERT 000000d9: JUMPDEST 000000da: DUP1 000000db: PUSH4 0x71d4eb21 000000e0: EQ 000000e1: PUSH2 0x030a 000000e4: JUMPI 000000e5: DUP1 000000e6: PUSH4 0x759f9dec 000000eb: EQ 000000ec: PUSH2 0x031d 000000ef: JUMPI 000000f0: DUP1 000000f1: PUSH4 0x83b60e4d 000000f6: EQ 000000f7: PUSH2 0x0326 000000fa: JUMPI 000000fb: PUSH0 000000fc: DUP1 000000fd: REVERT 000000fe: JUMPDEST 000000ff: DUP1 00000100: PUSH4 0x3db6c94a 00000105: GT 00000106: PUSH2 0x0174 00000109: JUMPI 0000010a: DUP1 0000010b: PUSH4 0x58569081 00000110: GT 00000111: PUSH2 0x0144 00000114: JUMPI 00000115: DUP1 00000116: PUSH4 0x58569081 0000011b: EQ 0000011c: PUSH2 0x02ab 0000011f: JUMPI 00000120: DUP1 00000121: PUSH4 0x5a4d28bb 00000126: EQ 00000127: PUSH2 0x02b4 0000012a: JUMPI 0000012b: DUP1 0000012c: PUSH4 0x630afce5 00000131: EQ 00000132: PUSH2 0x02db 00000135: JUMPI 00000136: DUP1 00000137: PUSH4 0x6d8f962d 0000013c: EQ 0000013d: PUSH2 0x0302 00000140: JUMPI 00000141: PUSH0 00000142: DUP1 00000143: REVERT 00000144: JUMPDEST 00000145: DUP1 00000146: PUSH4 0x3db6c94a 0000014b: EQ 0000014c: PUSH2 0x028a 0000014f: JUMPI 00000150: DUP1 00000151: PUSH4 0x42635a95 00000156: EQ 00000157: PUSH2 0x0292 0000015a: JUMPI 0000015b: DUP1 0000015c: PUSH4 0x45507998 00000161: EQ 00000162: PUSH2 0x029b 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0x4ba89fa1 0000016c: EQ 0000016d: PUSH2 0x02a3 00000170: JUMPI 00000171: PUSH0 00000172: DUP1 00000173: REVERT 00000174: JUMPDEST 00000175: DUP1 00000176: PUSH4 0x10a985c1 0000017b: GT 0000017c: PUSH2 0x01af 0000017f: JUMPI 00000180: DUP1 00000181: PUSH4 0x10a985c1 00000186: EQ 00000187: PUSH2 0x023d 0000018a: JUMPI 0000018b: DUP1 0000018c: PUSH4 0x1bfa0d7b 00000191: EQ 00000192: PUSH2 0x0246 00000195: JUMPI 00000196: DUP1 00000197: PUSH4 0x2bcbcbcb 0000019c: EQ 0000019d: PUSH2 0x0250 000001a0: JUMPI 000001a1: DUP1 000001a2: PUSH4 0x31b8c946 000001a7: EQ 000001a8: PUSH2 0x0263 000001ab: JUMPI 000001ac: PUSH0 000001ad: DUP1 000001ae: REVERT 000001af: JUMPDEST 000001b0: DUP1 000001b1: PUSH4 0x0367b302 000001b6: EQ 000001b7: PUSH2 0x01d5 000001ba: JUMPI 000001bb: DUP1 000001bc: PUSH4 0x048c661d 000001c1: EQ 000001c2: PUSH2 0x01eb 000001c5: JUMPI 000001c6: DUP1 000001c7: PUSH4 0x06ff8dfb 000001cc: EQ 000001cd: PUSH2 0x022a 000001d0: JUMPI 000001d1: JUMPDEST 000001d2: PUSH0 000001d3: DUP1 000001d4: REVERT 000001d5: JUMPDEST 000001d6: PUSH0 000001d7: SLOAD 000001d8: JUMPDEST 000001d9: PUSH1 0x40 000001db: MLOAD 000001dc: SWAP1 000001dd: DUP2 000001de: MSTORE 000001df: PUSH1 0x20 000001e1: ADD 000001e2: JUMPDEST 000001e3: PUSH1 0x40 000001e5: MLOAD 000001e6: DUP1 000001e7: SWAP2 000001e8: SUB 000001e9: SWAP1 000001ea: RETURN 000001eb: JUMPDEST 000001ec: PUSH2 0x0212 000001ef: PUSH32 0x0000000000000000000000005721cbbd64fc7ae3ef44a0a3f9a790a9264cf9bf 00000210: DUP2 00000211: JUMP 00000212: JUMPDEST 00000213: PUSH1 0x40 00000215: MLOAD 00000216: PUSH1 0x01 00000218: PUSH1 0x01 0000021a: PUSH1 0xa0 0000021c: SHL 0000021d: SUB 0000021e: SWAP1 0000021f: SWAP2 00000220: AND 00000221: DUP2 00000222: MSTORE 00000223: PUSH1 0x20 00000225: ADD 00000226: PUSH2 0x01e2 00000229: JUMP 0000022a: JUMPDEST 0000022b: PUSH1 0x04 0000022d: SLOAD 0000022e: PUSH1 0x40 00000230: MLOAD 00000231: SWAP1 00000232: ISZERO 00000233: ISZERO 00000234: DUP2 00000235: MSTORE 00000236: PUSH1 0x20 00000238: ADD 00000239: PUSH2 0x01e2 0000023c: JUMP 0000023d: JUMPDEST 0000023e: PUSH2 0x01d8 00000241: PUSH1 0x06 00000243: SLOAD 00000244: DUP2 00000245: JUMP 00000246: JUMPDEST 00000247: PUSH2 0x024e 0000024a: PUSH2 0x0453 0000024d: JUMP 0000024e: JUMPDEST 0000024f: STOP 00000250: JUMPDEST 00000251: PUSH2 0x024e 00000254: PUSH2 0x025e 00000257: CALLDATASIZE 00000258: PUSH1 0x04 0000025a: PUSH2 0x12d1 0000025d: JUMP 0000025e: JUMPDEST 0000025f: PUSH2 0x047b 00000262: JUMP 00000263: JUMPDEST 00000264: PUSH2 0x0212 00000267: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000288: DUP2 00000289: JUMP 0000028a: JUMPDEST 0000028b: PUSH2 0x01d8 0000028e: PUSH2 0x048f 00000291: JUMP 00000292: JUMPDEST 00000293: PUSH2 0x01d8 00000296: PUSH1 0x02 00000298: SLOAD 00000299: DUP2 0000029a: JUMP 0000029b: JUMPDEST 0000029c: PUSH2 0x01d8 0000029f: PUSH2 0x04dc 000002a2: JUMP 000002a3: JUMPDEST 000002a4: PUSH2 0x01d8 000002a7: PUSH2 0x0511 000002aa: JUMP 000002ab: JUMPDEST 000002ac: PUSH2 0x01d8 000002af: PUSH1 0x04 000002b1: SLOAD 000002b2: DUP2 000002b3: JUMP 000002b4: JUMPDEST 000002b5: PUSH2 0x0212 000002b8: PUSH32 0x0000000000000000000000007bcb64b2c9206a5b699ed43363f6f98d4776cf5a 000002d9: DUP2 000002da: JUMP 000002db: JUMPDEST 000002dc: PUSH2 0x0212 000002df: PUSH32 0x0000000000000000000000006440f144b7e50d6a8439336510312d2f54beb01d 00000300: DUP2 00000301: JUMP 00000302: JUMPDEST 00000303: PUSH2 0x024e 00000306: PUSH2 0x0558 00000309: JUMP 0000030a: JUMPDEST 0000030b: PUSH2 0x024e 0000030e: PUSH2 0x0318 00000311: CALLDATASIZE 00000312: PUSH1 0x04 00000314: PUSH2 0x131a 00000317: JUMP 00000318: JUMPDEST 00000319: PUSH2 0x0566 0000031c: JUMP 0000031d: JUMPDEST 0000031e: PUSH2 0x01d8 00000321: PUSH1 0x03 00000323: SLOAD 00000324: DUP2 00000325: JUMP 00000326: JUMPDEST 00000327: PUSH2 0x024e 0000032a: PUSH2 0x0334 0000032d: CALLDATASIZE 0000032e: PUSH1 0x04 00000330: PUSH2 0x12d1 00000333: JUMP 00000334: JUMPDEST 00000335: PUSH2 0x060f 00000338: JUMP 00000339: JUMPDEST 0000033a: PUSH2 0x01d8 0000033d: PUSH2 0x0347 00000340: CALLDATASIZE 00000341: PUSH1 0x04 00000343: PUSH2 0x134e 00000346: JUMP 00000347: JUMPDEST 00000348: PUSH2 0x0655 0000034b: JUMP 0000034c: JUMPDEST 0000034d: PUSH2 0x01d8 00000350: PUSH1 0x01 00000352: SLOAD 00000353: DUP2 00000354: JUMP 00000355: JUMPDEST 00000356: PUSH2 0x024e 00000359: PUSH2 0x0363 0000035c: CALLDATASIZE 0000035d: PUSH1 0x04 0000035f: PUSH2 0x1369 00000362: JUMP 00000363: JUMPDEST 00000364: PUSH2 0x0710 00000367: JUMP 00000368: JUMPDEST 00000369: PUSH2 0x0391 0000036c: PUSH1 0x40 0000036e: MLOAD 0000036f: DUP1 00000370: PUSH1 0x40 00000372: ADD 00000373: PUSH1 0x40 00000375: MSTORE 00000376: DUP1 00000377: PUSH1 0x0a 00000379: DUP2 0000037a: MSTORE 0000037b: PUSH1 0x20 0000037d: ADD 0000037e: PUSH10 0x1058dd1a5d99541bdbdb 00000389: PUSH1 0xb2 0000038b: SHL 0000038c: DUP2 0000038d: MSTORE 0000038e: POP 0000038f: DUP2 00000390: JUMP 00000391: JUMPDEST 00000392: PUSH1 0x40 00000394: MLOAD 00000395: PUSH2 0x01e2 00000398: SWAP2 00000399: SWAP1 0000039a: PUSH2 0x13b3 0000039d: JUMP 0000039e: JUMPDEST 0000039f: PUSH2 0x0212 000003a2: PUSH32 0x000000000000000000000000d4558240d50c2e219a21c9d25afd513bb6e5b1a0 000003c3: DUP2 000003c4: JUMP 000003c5: JUMPDEST 000003c6: PUSH2 0x01d8 000003c9: PUSH1 0x07 000003cb: SLOAD 000003cc: DUP2 000003cd: JUMP 000003ce: JUMPDEST 000003cf: PUSH2 0x0212 000003d2: PUSH32 0x000000000000000000000000372abd1810eaf23cb9d941bbe7596dfb2c46bc65 000003f3: DUP2 000003f4: JUMP 000003f5: JUMPDEST 000003f6: PUSH2 0x024e 000003f9: PUSH2 0x0403 000003fc: CALLDATASIZE 000003fd: PUSH1 0x04 000003ff: PUSH2 0x12d1 00000402: JUMP 00000403: JUMPDEST 00000404: PUSH2 0x0759 00000407: JUMP 00000408: JUMPDEST 00000409: PUSH2 0x0212 0000040c: PUSH32 0x000000000000000000000000807def5e7d057df05c796f4bc75c3fe82bd6eee1 0000042d: DUP2 0000042e: JUMP 0000042f: JUMPDEST 00000430: PUSH2 0x024e 00000433: PUSH2 0x043d 00000436: CALLDATASIZE 00000437: PUSH1 0x04 00000439: PUSH2 0x131a 0000043c: JUMP 0000043d: JUMPDEST 0000043e: PUSH2 0x07e2 00000441: JUMP 00000442: JUMPDEST 00000443: PUSH2 0x01d8 00000446: PUSH1 0x05 00000448: SLOAD 00000449: DUP2 0000044a: JUMP 0000044b: JUMPDEST 0000044c: PUSH2 0x01d8 0000044f: PUSH2 0x07fc 00000452: JUMP 00000453: JUMPDEST 00000454: PUSH2 0x045b 00000457: PUSH2 0x0838 0000045a: JUMP 0000045b: JUMPDEST 0000045c: PUSH2 0x0464 0000045f: PUSH0 00000460: PUSH2 0x0910 00000463: JUMP 00000464: JUMPDEST 00000465: PUSH1 0x01 00000467: PUSH0 00000468: DUP3 00000469: DUP3 0000046a: SLOAD 0000046b: PUSH2 0x0474 0000046e: SWAP2 0000046f: SWAP1 00000470: PUSH2 0x13f9 00000473: JUMP 00000474: JUMPDEST 00000475: SWAP1 00000476: SWAP2 00000477: SSTORE 00000478: POP 00000479: POP 0000047a: JUMP 0000047b: JUMPDEST 0000047c: PUSH2 0x0483 0000047f: PUSH2 0x0b37 00000482: JUMP 00000483: JUMPDEST 00000484: PUSH2 0x048c 00000487: DUP2 00000488: PUSH2 0x0bfc 0000048b: JUMP 0000048c: JUMPDEST 0000048d: POP 0000048e: JUMP 0000048f: JUMPDEST 00000490: PUSH0 00000491: PUSH1 0x04 00000493: SLOAD 00000494: PUSH0 00000495: EQ 00000496: PUSH2 0x049e 00000499: JUMPI 0000049a: POP 0000049b: PUSH0 0000049c: SWAP1 0000049d: JUMP 0000049e: JUMPDEST 0000049f: PUSH2 0x04d7 000004a2: PUSH1 0x03 000004a4: SLOAD 000004a5: TIMESTAMP 000004a6: PUSH2 0x04af 000004a9: SWAP2 000004aa: SWAP1 000004ab: PUSH2 0x140c 000004ae: JUMP 000004af: JUMPDEST 000004b0: PUSH1 0x02 000004b2: SLOAD 000004b3: PUSH2 0x04bc 000004b6: SWAP2 000004b7: SWAP1 000004b8: PUSH2 0x141f 000004bb: JUMP 000004bc: JUMPDEST 000004bd: PUSH2 0x04d2 000004c0: PUSH8 0x0de0b6b3a7640000 000004c9: PUSH4 0x01e13380 000004ce: PUSH2 0x141f 000004d1: JUMP 000004d2: JUMPDEST 000004d3: PUSH2 0x0c48 000004d6: JUMP 000004d7: JUMPDEST 000004d8: SWAP1 000004d9: POP 000004da: SWAP1 000004db: JUMP 000004dc: JUMPDEST 000004dd: PUSH0 000004de: PUSH2 0x04e5 000004e1: PUSH2 0x0511 000004e4: JUMP 000004e5: JUMPDEST 000004e6: PUSH1 0x05 000004e8: SLOAD 000004e9: PUSH2 0x04f0 000004ec: PUSH2 0x048f 000004ef: JUMP 000004f0: JUMPDEST 000004f1: PUSH1 0x01 000004f3: SLOAD 000004f4: PUSH2 0x04fd 000004f7: SWAP2 000004f8: SWAP1 000004f9: PUSH2 0x13f9 000004fc: JUMP 000004fd: JUMPDEST 000004fe: PUSH2 0x0507 00000501: SWAP2 00000502: SWAP1 00000503: PUSH2 0x13f9 00000506: JUMP 00000507: JUMPDEST 00000508: PUSH2 0x04d7 0000050b: SWAP2 0000050c: SWAP1 0000050d: PUSH2 0x13f9 00000510: JUMP 00000511: JUMPDEST 00000512: PUSH0 00000513: DUP1 00000514: PUSH1 0x04 00000516: SLOAD 00000517: PUSH0 00000518: SUB 00000519: PUSH2 0x0522 0000051c: JUMPI 0000051d: TIMESTAMP 0000051e: PUSH2 0x0526 00000521: JUMP 00000522: JUMPDEST 00000523: PUSH1 0x04 00000525: SLOAD 00000526: JUMPDEST 00000527: SWAP1 00000528: POP 00000529: PUSH0 0000052a: PUSH2 0x0535 0000052d: PUSH1 0x07 0000052f: SLOAD 00000530: DUP4 00000531: PUSH2 0x0c80 00000534: JUMP 00000535: JUMPDEST 00000536: SWAP1 00000537: POP 00000538: PUSH2 0x0551 0000053b: PUSH2 0x0544 0000053e: DUP3 0000053f: DUP5 00000540: PUSH2 0x140c 00000543: JUMP 00000544: JUMPDEST 00000545: PUSH1 0x06 00000547: SLOAD 00000548: PUSH2 0x04bc 0000054b: SWAP2 0000054c: SWAP1 0000054d: PUSH2 0x141f 00000550: JUMP 00000551: JUMPDEST 00000552: SWAP3 00000553: POP 00000554: POP 00000555: POP 00000556: SWAP1 00000557: JUMP 00000558: JUMPDEST 00000559: PUSH2 0x0560 0000055c: PUSH2 0x0c95 0000055f: JUMP 00000560: JUMPDEST 00000561: TIMESTAMP 00000562: PUSH1 0x04 00000564: SSTORE 00000565: JUMP 00000566: JUMPDEST 00000567: PUSH2 0x056e 0000056a: PUSH2 0x0d1c 0000056d: JUMP 0000056e: JUMPDEST 0000056f: PUSH1 0x01 00000571: PUSH1 0x01 00000573: PUSH1 0xa0 00000575: SHL 00000576: SUB 00000577: DUP2 00000578: AND 00000579: ISZERO 0000057a: PUSH2 0x0595 0000057d: JUMPI 0000057e: PUSH2 0x0595 00000581: PUSH2 0x058f 00000584: CALLDATASIZE 00000585: DUP5 00000586: SWAP1 00000587: SUB 00000588: DUP5 00000589: ADD 0000058a: DUP5 0000058b: PUSH2 0x146c 0000058e: JUMP 0000058f: JUMPDEST 00000590: DUP3 00000591: PUSH2 0x0df7 00000594: JUMP 00000595: JUMPDEST 00000596: PUSH1 0x01 00000598: SLOAD 00000599: PUSH2 0x05a6 0000059c: PUSH2 0x0100 0000059f: DUP5 000005a0: ADD 000005a1: CALLDATALOAD 000005a2: PUSH2 0x0910 000005a5: JUMP 000005a6: JUMPDEST 000005a7: PUSH2 0x05b0 000005aa: SWAP1 000005ab: DUP3 000005ac: PUSH2 0x13f9 000005af: JUMP 000005b0: JUMPDEST 000005b1: SWAP1 000005b2: POP 000005b3: PUSH2 0x05bd 000005b6: DUP4 000005b7: CALLDATALOAD 000005b8: DUP3 000005b9: PUSH2 0x13f9 000005bc: JUMP 000005bd: JUMPDEST 000005be: SWAP1 000005bf: POP 000005c0: PUSH2 0x05cd 000005c3: PUSH1 0x80 000005c5: DUP5 000005c6: ADD 000005c7: CALLDATALOAD 000005c8: DUP3 000005c9: PUSH2 0x13f9 000005cc: JUMP 000005cd: JUMPDEST 000005ce: SWAP1 000005cf: POP 000005d0: PUSH2 0x05dd 000005d3: PUSH1 0xa0 000005d5: DUP5 000005d6: ADD 000005d7: CALLDATALOAD 000005d8: DUP3 000005d9: PUSH2 0x140c 000005dc: JUMP 000005dd: JUMPDEST 000005de: PUSH1 0x01 000005e0: DUP2 000005e1: SWAP1 000005e2: SSTORE 000005e3: PUSH1 0x02 000005e5: SLOAD 000005e6: SWAP1 000005e7: SWAP2 000005e8: POP 000005e9: PUSH2 0x05f6 000005ec: PUSH1 0xc0 000005ee: DUP6 000005ef: ADD 000005f0: CALLDATALOAD 000005f1: DUP3 000005f2: PUSH2 0x13f9 000005f5: JUMP 000005f6: JUMPDEST 000005f7: SWAP1 000005f8: POP 000005f9: PUSH2 0x0606 000005fc: PUSH1 0xe0 000005fe: DUP6 000005ff: ADD 00000600: CALLDATALOAD 00000601: DUP3 00000602: PUSH2 0x140c 00000605: JUMP 00000606: JUMPDEST 00000607: PUSH1 0x02 00000609: SSTORE 0000060a: POP 0000060b: POP 0000060c: POP 0000060d: POP 0000060e: JUMP 0000060f: JUMPDEST 00000610: PUSH2 0x0617 00000613: PUSH2 0x0b37 00000616: JUMP 00000617: JUMPDEST 00000618: PUSH2 0x0620 0000061b: DUP2 0000061c: PUSH2 0x0bfc 0000061f: JUMP 00000620: JUMPDEST 00000621: PUSH2 0x048c 00000624: PUSH1 0x01 00000626: PUSH1 0x01 00000628: PUSH1 0xa0 0000062a: SHL 0000062b: SUB 0000062c: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000064d: AND 0000064e: CALLER 0000064f: ADDRESS 00000650: DUP5 00000651: PUSH2 0x0f0d 00000654: JUMP 00000655: JUMPDEST 00000656: PUSH0 00000657: PUSH2 0x0100 0000065a: DUP3 0000065b: ADD 0000065c: CALLDATALOAD 0000065d: ISZERO 0000065e: PUSH2 0x0669 00000661: JUMPI 00000662: PUSH2 0x0669 00000665: PUSH2 0x1509 00000668: JUMP 00000669: JUMPDEST 0000066a: PUSH1 0x04 0000066c: SLOAD 0000066d: ISZERO 0000066e: PUSH2 0x0678 00000671: JUMPI 00000672: POP 00000673: PUSH0 00000674: SWAP2 00000675: SWAP1 00000676: POP 00000677: JUMP 00000678: JUMPDEST 00000679: PUSH1 0x01 0000067b: SLOAD 0000067c: PUSH2 0x0683 0000067f: PUSH2 0x048f 00000682: JUMP 00000683: JUMPDEST 00000684: PUSH2 0x068d 00000687: SWAP1 00000688: DUP3 00000689: PUSH2 0x13f9 0000068c: JUMP 0000068d: JUMPDEST 0000068e: SWAP1 0000068f: POP 00000690: PUSH2 0x069a 00000693: DUP4 00000694: CALLDATALOAD 00000695: DUP3 00000696: PUSH2 0x13f9 00000699: JUMP 0000069a: JUMPDEST 0000069b: SWAP1 0000069c: POP 0000069d: PUSH2 0x06aa 000006a0: PUSH1 0x80 000006a2: DUP5 000006a3: ADD 000006a4: CALLDATALOAD 000006a5: DUP3 000006a6: PUSH2 0x13f9 000006a9: JUMP 000006aa: JUMPDEST 000006ab: SWAP1 000006ac: POP 000006ad: PUSH2 0x06bb 000006b0: PUSH2 0x0120 000006b3: DUP5 000006b4: ADD 000006b5: CALLDATALOAD 000006b6: DUP3 000006b7: PUSH2 0x13f9 000006ba: JUMP 000006bb: JUMPDEST 000006bc: SWAP1 000006bd: POP 000006be: PUSH2 0x06cb 000006c1: PUSH1 0xa0 000006c3: DUP5 000006c4: ADD 000006c5: CALLDATALOAD 000006c6: DUP3 000006c7: PUSH2 0x140c 000006ca: JUMP 000006cb: JUMPDEST 000006cc: PUSH1 0x02 000006ce: SLOAD 000006cf: SWAP1 000006d0: SWAP2 000006d1: POP 000006d2: PUSH2 0x06df 000006d5: PUSH1 0xc0 000006d7: DUP6 000006d8: ADD 000006d9: CALLDATALOAD 000006da: DUP3 000006db: PUSH2 0x13f9 000006de: JUMP 000006df: JUMPDEST 000006e0: SWAP1 000006e1: POP 000006e2: PUSH2 0x06ef 000006e5: PUSH1 0xe0 000006e7: DUP6 000006e8: ADD 000006e9: CALLDATALOAD 000006ea: DUP3 000006eb: PUSH2 0x140c 000006ee: JUMP 000006ef: JUMPDEST 000006f0: SWAP1 000006f1: POP 000006f2: PUSH0 000006f3: DUP3 000006f4: GT 000006f5: PUSH2 0x06fe 000006f8: JUMPI 000006f9: PUSH0 000006fa: PUSH2 0x0708 000006fd: JUMP 000006fe: JUMPDEST 000006ff: PUSH2 0x0708 00000702: DUP3 00000703: DUP3 00000704: PUSH2 0x151d 00000707: JUMP 00000708: JUMPDEST 00000709: SWAP5 0000070a: SWAP4 0000070b: POP 0000070c: POP 0000070d: POP 0000070e: POP 0000070f: JUMP 00000710: JUMPDEST 00000711: PUSH2 0x0718 00000714: PUSH2 0x0f7e 00000717: JUMP 00000718: JUMPDEST 00000719: PUSH2 0x0721 0000071c: DUP2 0000071d: PUSH2 0x109e 00000720: JUMP 00000721: JUMPDEST 00000722: PUSH2 0x0755 00000725: PUSH1 0x01 00000727: PUSH1 0x01 00000729: PUSH1 0xa0 0000072b: SHL 0000072c: SUB 0000072d: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000074e: AND 0000074f: DUP4 00000750: DUP4 00000751: PUSH2 0x10ac 00000754: JUMP 00000755: JUMPDEST 00000756: POP 00000757: POP 00000758: JUMP 00000759: JUMPDEST 0000075a: PUSH2 0x0761 0000075d: PUSH2 0x0c95 00000760: JUMP 00000761: JUMPDEST 00000762: PUSH2 0x076a 00000765: DUP2 00000766: PUSH2 0x109e 00000769: JUMP 0000076a: JUMPDEST 0000076b: PUSH1 0x40 0000076d: MLOAD 0000076e: PUSH4 0x83b60e4d 00000773: PUSH1 0xe0 00000775: SHL 00000776: DUP2 00000777: MSTORE 00000778: PUSH1 0x04 0000077a: DUP2 0000077b: ADD 0000077c: DUP3 0000077d: SWAP1 0000077e: MSTORE 0000077f: PUSH32 0x000000000000000000000000d4558240d50c2e219a21c9d25afd513bb6e5b1a0 000007a0: PUSH1 0x01 000007a2: PUSH1 0x01 000007a4: PUSH1 0xa0 000007a6: SHL 000007a7: SUB 000007a8: AND 000007a9: SWAP1 000007aa: PUSH4 0x83b60e4d 000007af: SWAP1 000007b0: PUSH1 0x24 000007b2: ADD 000007b3: PUSH0 000007b4: PUSH1 0x40 000007b6: MLOAD 000007b7: DUP1 000007b8: DUP4 000007b9: SUB 000007ba: DUP2 000007bb: PUSH0 000007bc: DUP8 000007bd: DUP1 000007be: EXTCODESIZE 000007bf: ISZERO 000007c0: DUP1 000007c1: ISZERO 000007c2: PUSH2 0x07c9 000007c5: JUMPI 000007c6: PUSH0 000007c7: DUP1 000007c8: REVERT 000007c9: JUMPDEST 000007ca: POP 000007cb: GAS 000007cc: CALL 000007cd: ISZERO 000007ce: DUP1 000007cf: ISZERO 000007d0: PUSH2 0x07db 000007d3: JUMPI 000007d4: RETURNDATASIZE 000007d5: PUSH0 000007d6: DUP1 000007d7: RETURNDATACOPY 000007d8: RETURNDATASIZE 000007d9: PUSH0 000007da: REVERT 000007db: JUMPDEST 000007dc: POP 000007dd: POP 000007de: POP 000007df: POP 000007e0: POP 000007e1: JUMP 000007e2: JUMPDEST 000007e3: PUSH2 0x07ea 000007e6: PUSH2 0x0c95 000007e9: JUMP 000007ea: JUMPDEST 000007eb: PUSH2 0x0755 000007ee: PUSH2 0x058f 000007f1: CALLDATASIZE 000007f2: DUP5 000007f3: SWAP1 000007f4: SUB 000007f5: DUP5 000007f6: ADD 000007f7: DUP5 000007f8: PUSH2 0x146c 000007fb: JUMP 000007fc: JUMPDEST 000007fd: PUSH0 000007fe: PUSH8 0x0de0b6b3a7640000 00000807: PUSH2 0x0811 0000080a: PUSH1 0x64 0000080c: DUP3 0000080d: PUSH2 0x151d 00000810: JUMP 00000811: JUMPDEST 00000812: PUSH2 0x081c 00000815: SWAP1 00000816: PUSH1 0x4b 00000818: PUSH2 0x141f 0000081b: JUMP 0000081c: JUMPDEST 0000081d: PUSH2 0x0824 00000820: PUSH2 0x048f 00000823: JUMP 00000824: JUMPDEST 00000825: PUSH2 0x082e 00000828: SWAP2 00000829: SWAP1 0000082a: PUSH2 0x141f 0000082d: JUMP 0000082e: JUMPDEST 0000082f: PUSH2 0x04d7 00000832: SWAP2 00000833: SWAP1 00000834: PUSH2 0x151d 00000837: JUMP 00000838: JUMPDEST 00000839: CALLER 0000083a: PUSH1 0x01 0000083c: PUSH1 0x01 0000083e: PUSH1 0xa0 00000840: SHL 00000841: SUB 00000842: PUSH32 0x000000000000000000000000372abd1810eaf23cb9d941bbe7596dfb2c46bc65 00000863: AND 00000864: EQ 00000865: DUP1 00000866: PUSH2 0x0897 00000869: JUMPI 0000086a: POP 0000086b: CALLER 0000086c: PUSH1 0x01 0000086e: PUSH1 0x01 00000870: PUSH1 0xa0 00000872: SHL 00000873: SUB 00000874: PUSH32 0x0000000000000000000000005721cbbd64fc7ae3ef44a0a3f9a790a9264cf9bf 00000895: AND 00000896: EQ 00000897: JUMPDEST 00000898: PUSH2 0x090e 0000089b: JUMPI 0000089c: PUSH1 0x40 0000089e: MLOAD 0000089f: PUSH3 0x461bcd 000008a3: PUSH1 0xe5 000008a5: SHL 000008a6: DUP2 000008a7: MSTORE 000008a8: PUSH1 0x20 000008aa: PUSH1 0x04 000008ac: DUP3 000008ad: ADD 000008ae: MSTORE 000008af: PUSH1 0x3e 000008b1: PUSH1 0x24 000008b3: DUP3 000008b4: ADD 000008b5: MSTORE 000008b6: PUSH32 0x416374697665506f6f6c3a2043616c6c6572206973206e6f7420426f72726f77 000008d7: PUSH1 0x44 000008d9: DUP3 000008da: ADD 000008db: MSTORE 000008dc: PUSH32 0x65724f7065726174696f6e73206e6f722053746162696c697479506f6f6c0000 000008fd: PUSH1 0x64 000008ff: DUP3 00000900: ADD 00000901: MSTORE 00000902: PUSH1 0x84 00000904: ADD 00000905: JUMPDEST 00000906: PUSH1 0x40 00000908: MLOAD 00000909: DUP1 0000090a: SWAP2 0000090b: SUB 0000090c: SWAP1 0000090d: REVERT 0000090e: JUMPDEST 0000090f: JUMP 00000910: JUMPDEST 00000911: PUSH0 00000912: DUP2 00000913: PUSH2 0x091a 00000916: PUSH2 0x048f 00000919: JUMP 0000091a: JUMPDEST 0000091b: PUSH2 0x0924 0000091e: SWAP2 0000091f: SWAP1 00000920: PUSH2 0x13f9 00000923: JUMP 00000924: JUMPDEST 00000925: SWAP1 00000926: POP 00000927: DUP1 00000928: ISZERO 00000929: PUSH2 0x0b2e 0000092c: JUMPI 0000092d: PUSH0 0000092e: PUSH8 0x0de0b6b3a7640000 00000937: DUP3 00000938: PUSH2 0x0942 0000093b: PUSH1 0x64 0000093d: DUP4 0000093e: PUSH2 0x151d 00000941: JUMP 00000942: JUMPDEST 00000943: PUSH2 0x094d 00000946: SWAP1 00000947: PUSH1 0x4b 00000949: PUSH2 0x141f 0000094c: JUMP 0000094d: JUMPDEST 0000094e: PUSH2 0x0957 00000951: SWAP2 00000952: SWAP1 00000953: PUSH2 0x141f 00000956: JUMP 00000957: JUMPDEST 00000958: PUSH2 0x0961 0000095b: SWAP2 0000095c: SWAP1 0000095d: PUSH2 0x151d 00000960: JUMP 00000961: JUMPDEST 00000962: SWAP1 00000963: POP 00000964: PUSH0 00000965: PUSH2 0x096e 00000968: DUP3 00000969: DUP5 0000096a: PUSH2 0x140c 0000096d: JUMP 0000096e: JUMPDEST 0000096f: PUSH1 0x40 00000971: MLOAD 00000972: PUSH4 0x40c10f19 00000977: PUSH1 0xe0 00000979: SHL 0000097a: DUP2 0000097b: MSTORE 0000097c: PUSH1 0x01 0000097e: PUSH1 0x01 00000980: PUSH1 0xa0 00000982: SHL 00000983: SUB 00000984: PUSH32 0x000000000000000000000000807def5e7d057df05c796f4bc75c3fe82bd6eee1 000009a5: DUP2 000009a6: AND 000009a7: PUSH1 0x04 000009a9: DUP4 000009aa: ADD 000009ab: MSTORE 000009ac: PUSH1 0x24 000009ae: DUP3 000009af: ADD 000009b0: DUP4 000009b1: SWAP1 000009b2: MSTORE 000009b3: SWAP2 000009b4: SWAP3 000009b5: POP 000009b6: PUSH32 0x0000000000000000000000006440f144b7e50d6a8439336510312d2f54beb01d 000009d7: SWAP1 000009d8: SWAP2 000009d9: AND 000009da: SWAP1 000009db: PUSH4 0x40c10f19 000009e0: SWAP1 000009e1: PUSH1 0x44 000009e3: ADD 000009e4: PUSH0 000009e5: PUSH1 0x40 000009e7: MLOAD 000009e8: DUP1 000009e9: DUP4 000009ea: SUB 000009eb: DUP2 000009ec: PUSH0 000009ed: DUP8 000009ee: DUP1 000009ef: EXTCODESIZE 000009f0: ISZERO 000009f1: DUP1 000009f2: ISZERO 000009f3: PUSH2 0x09fa 000009f6: JUMPI 000009f7: PUSH0 000009f8: DUP1 000009f9: REVERT 000009fa: JUMPDEST 000009fb: POP 000009fc: GAS 000009fd: CALL 000009fe: ISZERO 000009ff: DUP1 00000a00: ISZERO 00000a01: PUSH2 0x0a0c 00000a04: JUMPI 00000a05: RETURNDATASIZE 00000a06: PUSH0 00000a07: DUP1 00000a08: RETURNDATACOPY 00000a09: RETURNDATASIZE 00000a0a: PUSH0 00000a0b: REVERT 00000a0c: JUMPDEST 00000a0d: POP 00000a0e: POP 00000a0f: POP 00000a10: POP 00000a11: PUSH0 00000a12: DUP3 00000a13: GT 00000a14: ISZERO 00000a15: PUSH2 0x0b2b 00000a18: JUMPI 00000a19: PUSH1 0x40 00000a1b: MLOAD 00000a1c: PUSH4 0x40c10f19 00000a21: PUSH1 0xe0 00000a23: SHL 00000a24: DUP2 00000a25: MSTORE 00000a26: PUSH1 0x01 00000a28: PUSH1 0x01 00000a2a: PUSH1 0xa0 00000a2c: SHL 00000a2d: SUB 00000a2e: PUSH32 0x0000000000000000000000005721cbbd64fc7ae3ef44a0a3f9a790a9264cf9bf 00000a4f: DUP2 00000a50: AND 00000a51: PUSH1 0x04 00000a53: DUP4 00000a54: ADD 00000a55: MSTORE 00000a56: PUSH1 0x24 00000a58: DUP3 00000a59: ADD 00000a5a: DUP5 00000a5b: SWAP1 00000a5c: MSTORE 00000a5d: PUSH32 0x0000000000000000000000006440f144b7e50d6a8439336510312d2f54beb01d 00000a7e: AND 00000a7f: SWAP1 00000a80: PUSH4 0x40c10f19 00000a85: SWAP1 00000a86: PUSH1 0x44 00000a88: ADD 00000a89: PUSH0 00000a8a: PUSH1 0x40 00000a8c: MLOAD 00000a8d: DUP1 00000a8e: DUP4 00000a8f: SUB 00000a90: DUP2 00000a91: PUSH0 00000a92: DUP8 00000a93: DUP1 00000a94: EXTCODESIZE 00000a95: ISZERO 00000a96: DUP1 00000a97: ISZERO 00000a98: PUSH2 0x0a9f 00000a9b: JUMPI 00000a9c: PUSH0 00000a9d: DUP1 00000a9e: REVERT 00000a9f: JUMPDEST 00000aa0: POP 00000aa1: GAS 00000aa2: CALL 00000aa3: ISZERO 00000aa4: DUP1 00000aa5: ISZERO 00000aa6: PUSH2 0x0ab1 00000aa9: JUMPI 00000aaa: RETURNDATASIZE 00000aab: PUSH0 00000aac: DUP1 00000aad: RETURNDATACOPY 00000aae: RETURNDATASIZE 00000aaf: PUSH0 00000ab0: REVERT 00000ab1: JUMPDEST 00000ab2: POP 00000ab3: POP 00000ab4: PUSH1 0x40 00000ab6: MLOAD 00000ab7: PUSH4 0xaffb4669 00000abc: PUSH1 0xe0 00000abe: SHL 00000abf: DUP2 00000ac0: MSTORE 00000ac1: PUSH1 0x04 00000ac3: DUP2 00000ac4: ADD 00000ac5: DUP6 00000ac6: SWAP1 00000ac7: MSTORE 00000ac8: PUSH32 0x0000000000000000000000005721cbbd64fc7ae3ef44a0a3f9a790a9264cf9bf 00000ae9: PUSH1 0x01 00000aeb: PUSH1 0x01 00000aed: PUSH1 0xa0 00000aef: SHL 00000af0: SUB 00000af1: AND 00000af2: SWAP3 00000af3: POP 00000af4: PUSH4 0xaffb4669 00000af9: SWAP2 00000afa: POP 00000afb: PUSH1 0x24 00000afd: ADD 00000afe: PUSH0 00000aff: PUSH1 0x40 00000b01: MLOAD 00000b02: DUP1 00000b03: DUP4 00000b04: SUB 00000b05: DUP2 00000b06: PUSH0 00000b07: DUP8 00000b08: DUP1 00000b09: EXTCODESIZE 00000b0a: ISZERO 00000b0b: DUP1 00000b0c: ISZERO 00000b0d: PUSH2 0x0b14 00000b10: JUMPI 00000b11: PUSH0 00000b12: DUP1 00000b13: REVERT 00000b14: JUMPDEST 00000b15: POP 00000b16: GAS 00000b17: CALL 00000b18: ISZERO 00000b19: DUP1 00000b1a: ISZERO 00000b1b: PUSH2 0x0b26 00000b1e: JUMPI 00000b1f: RETURNDATASIZE 00000b20: PUSH0 00000b21: DUP1 00000b22: RETURNDATACOPY 00000b23: RETURNDATASIZE 00000b24: PUSH0 00000b25: REVERT 00000b26: JUMPDEST 00000b27: POP 00000b28: POP 00000b29: POP 00000b2a: POP 00000b2b: JUMPDEST 00000b2c: POP 00000b2d: POP 00000b2e: JUMPDEST 00000b2f: TIMESTAMP 00000b30: PUSH1 0x03 00000b32: SSTORE 00000b33: SWAP2 00000b34: SWAP1 00000b35: POP 00000b36: JUMP 00000b37: JUMPDEST 00000b38: CALLER 00000b39: PUSH1 0x01 00000b3b: PUSH1 0x01 00000b3d: PUSH1 0xa0 00000b3f: SHL 00000b40: SUB 00000b41: PUSH32 0x000000000000000000000000372abd1810eaf23cb9d941bbe7596dfb2c46bc65 00000b62: AND 00000b63: EQ 00000b64: DUP1 00000b65: PUSH2 0x0b96 00000b68: JUMPI 00000b69: POP 00000b6a: CALLER 00000b6b: PUSH1 0x01 00000b6d: PUSH1 0x01 00000b6f: PUSH1 0xa0 00000b71: SHL 00000b72: SUB 00000b73: PUSH32 0x000000000000000000000000d4558240d50c2e219a21c9d25afd513bb6e5b1a0 00000b94: AND 00000b95: EQ 00000b96: JUMPDEST 00000b97: PUSH2 0x090e 00000b9a: JUMPI 00000b9b: PUSH1 0x40 00000b9d: MLOAD 00000b9e: PUSH3 0x461bcd 00000ba2: PUSH1 0xe5 00000ba4: SHL 00000ba5: DUP2 00000ba6: MSTORE 00000ba7: PUSH1 0x20 00000ba9: PUSH1 0x04 00000bab: DUP3 00000bac: ADD 00000bad: MSTORE 00000bae: PUSH1 0x31 00000bb0: PUSH1 0x24 00000bb2: DUP3 00000bb3: ADD 00000bb4: MSTORE 00000bb5: PUSH32 0x416374697665506f6f6c3a2043616c6c6572206973206e65697468657220424f 00000bd6: PUSH1 0x44 00000bd8: DUP3 00000bd9: ADD 00000bda: MSTORE 00000bdb: PUSH17 0x081b9bdc88111959985d5b1d08141bdbdb 00000bed: PUSH1 0x7a 00000bef: SHL 00000bf0: PUSH1 0x64 00000bf2: DUP3 00000bf3: ADD 00000bf4: MSTORE 00000bf5: PUSH1 0x84 00000bf7: ADD 00000bf8: PUSH2 0x0905 00000bfb: JUMP 00000bfc: JUMPDEST 00000bfd: PUSH0 00000bfe: DUP2 00000bff: PUSH0 00000c00: SLOAD 00000c01: PUSH2 0x0c0a 00000c04: SWAP2 00000c05: SWAP1 00000c06: PUSH2 0x13f9 00000c09: JUMP 00000c0a: JUMPDEST 00000c0b: PUSH0 00000c0c: DUP2 00000c0d: SWAP1 00000c0e: SSTORE 00000c0f: PUSH1 0x40 00000c11: MLOAD 00000c12: DUP2 00000c13: DUP2 00000c14: MSTORE 00000c15: SWAP1 00000c16: SWAP2 00000c17: POP 00000c18: PUSH32 0x9bbe217b4113a0fc957e51f8db99c9989f520e3c6bcca7a8e12c6316eaf995bf 00000c39: SWAP1 00000c3a: PUSH1 0x20 00000c3c: ADD 00000c3d: PUSH1 0x40 00000c3f: MLOAD 00000c40: DUP1 00000c41: SWAP2 00000c42: SUB 00000c43: SWAP1 00000c44: LOG1 00000c45: POP 00000c46: POP 00000c47: JUMP 00000c48: JUMPDEST 00000c49: PUSH0 00000c4a: DUP3 00000c4b: ISZERO 00000c4c: PUSH2 0x0c75 00000c4f: JUMPI 00000c50: DUP2 00000c51: PUSH2 0x0c5b 00000c54: PUSH1 0x01 00000c56: DUP6 00000c57: PUSH2 0x140c 00000c5a: JUMP 00000c5b: JUMPDEST 00000c5c: PUSH2 0x0c65 00000c5f: SWAP2 00000c60: SWAP1 00000c61: PUSH2 0x151d 00000c64: JUMP 00000c65: JUMPDEST 00000c66: PUSH2 0x0c70 00000c69: SWAP1 00000c6a: PUSH1 0x01 00000c6c: PUSH2 0x13f9 00000c6f: JUMP 00000c70: JUMPDEST 00000c71: PUSH2 0x0c77 00000c74: JUMP 00000c75: JUMPDEST 00000c76: PUSH0 00000c77: JUMPDEST 00000c78: SWAP1 00000c79: POP 00000c7a: JUMPDEST 00000c7b: SWAP3 00000c7c: SWAP2 00000c7d: POP 00000c7e: POP 00000c7f: JUMP 00000c80: JUMPDEST 00000c81: PUSH0 00000c82: DUP2 00000c83: DUP4 00000c84: LT 00000c85: PUSH2 0x0c8e 00000c88: JUMPI 00000c89: DUP2 00000c8a: PUSH2 0x0c77 00000c8d: JUMP 00000c8e: JUMPDEST 00000c8f: POP 00000c90: SWAP1 00000c91: SWAP2 00000c92: SWAP1 00000c93: POP 00000c94: JUMP 00000c95: JUMPDEST 00000c96: CALLER 00000c97: PUSH1 0x01 00000c99: PUSH1 0x01 00000c9b: PUSH1 0xa0 00000c9d: SHL 00000c9e: SUB 00000c9f: PUSH32 0x0000000000000000000000007bcb64b2c9206a5b699ed43363f6f98d4776cf5a 00000cc0: AND 00000cc1: EQ 00000cc2: PUSH2 0x090e 00000cc5: JUMPI 00000cc6: PUSH1 0x40 00000cc8: MLOAD 00000cc9: PUSH3 0x461bcd 00000ccd: PUSH1 0xe5 00000ccf: SHL 00000cd0: DUP2 00000cd1: MSTORE 00000cd2: PUSH1 0x20 00000cd4: PUSH1 0x04 00000cd6: DUP3 00000cd7: ADD 00000cd8: MSTORE 00000cd9: PUSH1 0x26 00000cdb: PUSH1 0x24 00000cdd: DUP3 00000cde: ADD 00000cdf: MSTORE 00000ce0: PUSH32 0x416374697665506f6f6c3a2043616c6c6572206973206e6f742054726f76654d 00000d01: PUSH1 0x44 00000d03: DUP3 00000d04: ADD 00000d05: MSTORE 00000d06: PUSH6 0x30b730b3b2b9 00000d0d: PUSH1 0xd1 00000d0f: SHL 00000d10: PUSH1 0x64 00000d12: DUP3 00000d13: ADD 00000d14: MSTORE 00000d15: PUSH1 0x84 00000d17: ADD 00000d18: PUSH2 0x0905 00000d1b: JUMP 00000d1c: JUMPDEST 00000d1d: CALLER 00000d1e: PUSH1 0x01 00000d20: PUSH1 0x01 00000d22: PUSH1 0xa0 00000d24: SHL 00000d25: SUB 00000d26: PUSH32 0x000000000000000000000000372abd1810eaf23cb9d941bbe7596dfb2c46bc65 00000d47: AND 00000d48: EQ 00000d49: DUP1 00000d4a: PUSH2 0x0d7b 00000d4d: JUMPI 00000d4e: POP 00000d4f: CALLER 00000d50: PUSH1 0x01 00000d52: PUSH1 0x01 00000d54: PUSH1 0xa0 00000d56: SHL 00000d57: SUB 00000d58: PUSH32 0x0000000000000000000000007bcb64b2c9206a5b699ed43363f6f98d4776cf5a 00000d79: AND 00000d7a: EQ 00000d7b: JUMPDEST 00000d7c: PUSH2 0x090e 00000d7f: JUMPI 00000d80: PUSH1 0x40 00000d82: MLOAD 00000d83: PUSH3 0x461bcd 00000d87: PUSH1 0xe5 00000d89: SHL 00000d8a: DUP2 00000d8b: MSTORE 00000d8c: PUSH1 0x20 00000d8e: PUSH1 0x04 00000d90: DUP3 00000d91: ADD 00000d92: MSTORE 00000d93: PUSH1 0x41 00000d95: PUSH1 0x24 00000d97: DUP3 00000d98: ADD 00000d99: MSTORE 00000d9a: PUSH32 0x416374697665506f6f6c3a2043616c6c6572206973206e65697468657220426f 00000dbb: PUSH1 0x44 00000dbd: DUP3 00000dbe: ADD 00000dbf: MSTORE 00000dc0: PUSH32 0x72726f7765724f7065726174696f6e73206e6f722054726f76654d616e616765 00000de1: PUSH1 0x64 00000de3: DUP3 00000de4: ADD 00000de5: MSTORE 00000de6: PUSH1 0x39 00000de8: PUSH1 0xf9 00000dea: SHL 00000deb: PUSH1 0x84 00000ded: DUP3 00000dee: ADD 00000def: MSTORE 00000df0: PUSH1 0xa4 00000df2: ADD 00000df3: PUSH2 0x0905 00000df6: JUMP 00000df7: JUMPDEST 00000df8: DUP2 00000df9: PUSH2 0x0120 00000dfc: ADD 00000dfd: MLOAD 00000dfe: PUSH1 0x01 00000e00: PUSH0 00000e01: DUP3 00000e02: DUP3 00000e03: SLOAD 00000e04: PUSH2 0x0e0d 00000e07: SWAP2 00000e08: SWAP1 00000e09: PUSH2 0x13f9 00000e0c: JUMP 00000e0d: JUMPDEST 00000e0e: SWAP1 00000e0f: SWAP2 00000e10: SSTORE 00000e11: POP 00000e12: POP 00000e13: PUSH1 0x05 00000e15: SLOAD 00000e16: PUSH2 0x0e1d 00000e19: PUSH2 0x0511 00000e1c: JUMP 00000e1d: JUMPDEST 00000e1e: PUSH2 0x0e27 00000e21: SWAP1 00000e22: DUP3 00000e23: PUSH2 0x13f9 00000e26: JUMP 00000e27: JUMPDEST 00000e28: SWAP1 00000e29: POP 00000e2a: DUP3 00000e2b: PUSH2 0x0120 00000e2e: ADD 00000e2f: MLOAD 00000e30: DUP2 00000e31: PUSH2 0x0e3a 00000e34: SWAP2 00000e35: SWAP1 00000e36: PUSH2 0x140c 00000e39: JUMP 00000e3a: JUMPDEST 00000e3b: PUSH1 0x05 00000e3d: DUP2 00000e3e: SWAP1 00000e3f: SSTORE 00000e40: PUSH1 0x06 00000e42: SLOAD 00000e43: PUSH2 0x0140 00000e46: DUP6 00000e47: ADD 00000e48: MLOAD 00000e49: SWAP2 00000e4a: SWAP3 00000e4b: POP 00000e4c: SWAP1 00000e4d: PUSH2 0x0e56 00000e50: SWAP1 00000e51: DUP3 00000e52: PUSH2 0x13f9 00000e55: JUMP 00000e56: JUMPDEST 00000e57: SWAP1 00000e58: POP 00000e59: DUP4 00000e5a: PUSH2 0x0160 00000e5d: ADD 00000e5e: MLOAD 00000e5f: DUP2 00000e60: PUSH2 0x0e69 00000e63: SWAP2 00000e64: SWAP1 00000e65: PUSH2 0x140c 00000e68: JUMP 00000e69: JUMPDEST 00000e6a: PUSH1 0x06 00000e6c: DUP2 00000e6d: SWAP1 00000e6e: SSTORE 00000e6f: PUSH2 0x0120 00000e72: DUP6 00000e73: ADD 00000e74: MLOAD 00000e75: SWAP1 00000e76: SWAP2 00000e77: POP 00000e78: ISZERO 00000e79: PUSH2 0x0f03 00000e7c: JUMPI 00000e7d: PUSH2 0x0120 00000e80: DUP5 00000e81: ADD 00000e82: MLOAD 00000e83: PUSH1 0x40 00000e85: MLOAD 00000e86: PUSH4 0x40c10f19 00000e8b: PUSH1 0xe0 00000e8d: SHL 00000e8e: DUP2 00000e8f: MSTORE 00000e90: PUSH1 0x01 00000e92: PUSH1 0x01 00000e94: PUSH1 0xa0 00000e96: SHL 00000e97: SUB 00000e98: DUP6 00000e99: DUP2 00000e9a: AND 00000e9b: PUSH1 0x04 00000e9d: DUP4 00000e9e: ADD 00000e9f: MSTORE 00000ea0: PUSH1 0x24 00000ea2: DUP3 00000ea3: ADD 00000ea4: SWAP3 00000ea5: SWAP1 00000ea6: SWAP3 00000ea7: MSTORE 00000ea8: PUSH32 0x0000000000000000000000006440f144b7e50d6a8439336510312d2f54beb01d 00000ec9: SWAP1 00000eca: SWAP2 00000ecb: AND 00000ecc: SWAP1 00000ecd: PUSH4 0x40c10f19 00000ed2: SWAP1 00000ed3: PUSH1 0x44 00000ed5: ADD 00000ed6: PUSH0 00000ed7: PUSH1 0x40 00000ed9: MLOAD 00000eda: DUP1 00000edb: DUP4 00000edc: SUB 00000edd: DUP2 00000ede: PUSH0 00000edf: DUP8 00000ee0: DUP1 00000ee1: EXTCODESIZE 00000ee2: ISZERO 00000ee3: DUP1 00000ee4: ISZERO 00000ee5: PUSH2 0x0eec 00000ee8: JUMPI 00000ee9: PUSH0 00000eea: DUP1 00000eeb: REVERT 00000eec: JUMPDEST 00000eed: POP 00000eee: GAS 00000eef: CALL 00000ef0: ISZERO 00000ef1: DUP1 00000ef2: ISZERO 00000ef3: PUSH2 0x0efe 00000ef6: JUMPI 00000ef7: RETURNDATASIZE 00000ef8: PUSH0 00000ef9: DUP1 00000efa: RETURNDATACOPY 00000efb: RETURNDATASIZE 00000efc: PUSH0 00000efd: REVERT 00000efe: JUMPDEST 00000eff: POP 00000f00: POP 00000f01: POP 00000f02: POP 00000f03: JUMPDEST 00000f04: POP 00000f05: POP 00000f06: TIMESTAMP 00000f07: PUSH1 0x07 00000f09: SSTORE 00000f0a: POP 00000f0b: POP 00000f0c: JUMP 00000f0d: JUMPDEST 00000f0e: PUSH1 0x40 00000f10: MLOAD 00000f11: PUSH1 0x01 00000f13: PUSH1 0x01 00000f15: PUSH1 0xa0 00000f17: SHL 00000f18: SUB 00000f19: DUP1 00000f1a: DUP6 00000f1b: AND 00000f1c: PUSH1 0x24 00000f1e: DUP4 00000f1f: ADD 00000f20: MSTORE 00000f21: DUP4 00000f22: AND 00000f23: PUSH1 0x44 00000f25: DUP3 00000f26: ADD 00000f27: MSTORE 00000f28: PUSH1 0x64 00000f2a: DUP2 00000f2b: ADD 00000f2c: DUP3 00000f2d: SWAP1 00000f2e: MSTORE 00000f2f: PUSH2 0x0f78 00000f32: SWAP1 00000f33: DUP6 00000f34: SWAP1 00000f35: PUSH4 0x23b872dd 00000f3a: PUSH1 0xe0 00000f3c: SHL 00000f3d: SWAP1 00000f3e: PUSH1 0x84 00000f40: ADD 00000f41: JUMPDEST 00000f42: PUSH1 0x40 00000f44: DUP1 00000f45: MLOAD 00000f46: PUSH1 0x1f 00000f48: NOT 00000f49: DUP2 00000f4a: DUP5 00000f4b: SUB 00000f4c: ADD 00000f4d: DUP2 00000f4e: MSTORE 00000f4f: SWAP2 00000f50: SWAP1 00000f51: MSTORE 00000f52: PUSH1 0x20 00000f54: DUP2 00000f55: ADD 00000f56: DUP1 00000f57: MLOAD 00000f58: PUSH1 0x01 00000f5a: PUSH1 0x01 00000f5c: PUSH1 0xe0 00000f5e: SHL 00000f5f: SUB 00000f60: AND 00000f61: PUSH1 0x01 00000f63: PUSH1 0x01 00000f65: PUSH1 0xe0 00000f67: SHL 00000f68: SUB 00000f69: NOT 00000f6a: SWAP1 00000f6b: SWAP4 00000f6c: AND 00000f6d: SWAP3 00000f6e: SWAP1 00000f6f: SWAP3 00000f70: OR 00000f71: SWAP1 00000f72: SWAP2 00000f73: MSTORE 00000f74: PUSH2 0x10e1 00000f77: JUMP 00000f78: JUMPDEST 00000f79: POP 00000f7a: POP 00000f7b: POP 00000f7c: POP 00000f7d: JUMP 00000f7e: JUMPDEST 00000f7f: CALLER 00000f80: PUSH1 0x01 00000f82: PUSH1 0x01 00000f84: PUSH1 0xa0 00000f86: SHL 00000f87: SUB 00000f88: PUSH32 0x000000000000000000000000372abd1810eaf23cb9d941bbe7596dfb2c46bc65 00000fa9: AND 00000faa: EQ 00000fab: DUP1 00000fac: PUSH2 0x0fdd 00000faf: JUMPI 00000fb0: POP 00000fb1: CALLER 00000fb2: PUSH1 0x01 00000fb4: PUSH1 0x01 00000fb6: PUSH1 0xa0 00000fb8: SHL 00000fb9: SUB 00000fba: PUSH32 0x0000000000000000000000007bcb64b2c9206a5b699ed43363f6f98d4776cf5a 00000fdb: AND 00000fdc: EQ 00000fdd: JUMPDEST 00000fde: DUP1 00000fdf: PUSH2 0x1010 00000fe2: JUMPI 00000fe3: POP 00000fe4: CALLER 00000fe5: PUSH1 0x01 00000fe7: PUSH1 0x01 00000fe9: PUSH1 0xa0 00000feb: SHL 00000fec: SUB 00000fed: PUSH32 0x0000000000000000000000005721cbbd64fc7ae3ef44a0a3f9a790a9264cf9bf 0000100e: AND 0000100f: EQ 00001010: JUMPDEST 00001011: PUSH2 0x090e 00001014: JUMPI 00001015: PUSH1 0x40 00001017: MLOAD 00001018: PUSH3 0x461bcd 0000101c: PUSH1 0xe5 0000101e: SHL 0000101f: DUP2 00001020: MSTORE 00001021: PUSH1 0x20 00001023: PUSH1 0x04 00001025: DUP3 00001026: ADD 00001027: MSTORE 00001028: PUSH1 0x53 0000102a: PUSH1 0x24 0000102c: DUP3 0000102d: ADD 0000102e: MSTORE 0000102f: PUSH32 0x416374697665506f6f6c3a2043616c6c6572206973206e65697468657220426f 00001050: PUSH1 0x44 00001052: DUP3 00001053: ADD 00001054: MSTORE 00001055: PUSH32 0x72726f7765724f7065726174696f6e73206e6f722054726f76654d616e616765 00001076: PUSH1 0x64 00001078: DUP3 00001079: ADD 0000107a: MSTORE 0000107b: PUSH19 0x1c881b9bdc8814dd18589a5b1a5d1e541bdbdb 0000108f: PUSH1 0x6a 00001091: SHL 00001092: PUSH1 0x84 00001094: DUP3 00001095: ADD 00001096: MSTORE 00001097: PUSH1 0xa4 00001099: ADD 0000109a: PUSH2 0x0905 0000109d: JUMP 0000109e: JUMPDEST 0000109f: PUSH0 000010a0: DUP2 000010a1: PUSH0 000010a2: SLOAD 000010a3: PUSH2 0x0c0a 000010a6: SWAP2 000010a7: SWAP1 000010a8: PUSH2 0x140c 000010ab: JUMP 000010ac: JUMPDEST 000010ad: PUSH1 0x40 000010af: MLOAD 000010b0: PUSH1 0x01 000010b2: PUSH1 0x01 000010b4: PUSH1 0xa0 000010b6: SHL 000010b7: SUB 000010b8: DUP4 000010b9: AND 000010ba: PUSH1 0x24 000010bc: DUP3 000010bd: ADD 000010be: MSTORE 000010bf: PUSH1 0x44 000010c1: DUP2 000010c2: ADD 000010c3: DUP3 000010c4: SWAP1 000010c5: MSTORE 000010c6: PUSH2 0x10dc 000010c9: SWAP1 000010ca: DUP5 000010cb: SWAP1 000010cc: PUSH4 0xa9059cbb 000010d1: PUSH1 0xe0 000010d3: SHL 000010d4: SWAP1 000010d5: PUSH1 0x64 000010d7: ADD 000010d8: PUSH2 0x0f41 000010db: JUMP 000010dc: JUMPDEST 000010dd: POP 000010de: POP 000010df: POP 000010e0: JUMP 000010e1: JUMPDEST 000010e2: PUSH0 000010e3: PUSH2 0x1135 000010e6: DUP3 000010e7: PUSH1 0x40 000010e9: MLOAD 000010ea: DUP1 000010eb: PUSH1 0x40 000010ed: ADD 000010ee: PUSH1 0x40 000010f0: MSTORE 000010f1: DUP1 000010f2: PUSH1 0x20 000010f4: DUP2 000010f5: MSTORE 000010f6: PUSH1 0x20 000010f8: ADD 000010f9: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 0000111a: DUP2 0000111b: MSTORE 0000111c: POP 0000111d: DUP6 0000111e: PUSH1 0x01 00001120: PUSH1 0x01 00001122: PUSH1 0xa0 00001124: SHL 00001125: SUB 00001126: AND 00001127: PUSH2 0x11b4 0000112a: SWAP1 0000112b: SWAP3 0000112c: SWAP2 0000112d: SWAP1 0000112e: PUSH4 0xffffffff 00001133: AND 00001134: JUMP 00001135: JUMPDEST 00001136: SWAP1 00001137: POP 00001138: DUP1 00001139: MLOAD 0000113a: PUSH0 0000113b: EQ 0000113c: DUP1 0000113d: PUSH2 0x1155 00001140: JUMPI 00001141: POP 00001142: DUP1 00001143: DUP1 00001144: PUSH1 0x20 00001146: ADD 00001147: SWAP1 00001148: MLOAD 00001149: DUP2 0000114a: ADD 0000114b: SWAP1 0000114c: PUSH2 0x1155 0000114f: SWAP2 00001150: SWAP1 00001151: PUSH2 0x153c 00001154: JUMP 00001155: JUMPDEST 00001156: PUSH2 0x10dc 00001159: JUMPI 0000115a: PUSH1 0x40 0000115c: MLOAD 0000115d: PUSH3 0x461bcd 00001161: PUSH1 0xe5 00001163: SHL 00001164: DUP2 00001165: MSTORE 00001166: PUSH1 0x20 00001168: PUSH1 0x04 0000116a: DUP3 0000116b: ADD 0000116c: MSTORE 0000116d: PUSH1 0x2a 0000116f: PUSH1 0x24 00001171: DUP3 00001172: ADD 00001173: MSTORE 00001174: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00001195: PUSH1 0x44 00001197: DUP3 00001198: ADD 00001199: MSTORE 0000119a: PUSH10 0x1bdd081cdd58d8d95959 000011a5: PUSH1 0xb2 000011a7: SHL 000011a8: PUSH1 0x64 000011aa: DUP3 000011ab: ADD 000011ac: MSTORE 000011ad: PUSH1 0x84 000011af: ADD 000011b0: PUSH2 0x0905 000011b3: JUMP 000011b4: JUMPDEST 000011b5: PUSH1 0x60 000011b7: PUSH2 0x0708 000011ba: DUP5 000011bb: DUP5 000011bc: PUSH0 000011bd: DUP6 000011be: DUP6 000011bf: PUSH0 000011c0: DUP1 000011c1: DUP7 000011c2: PUSH1 0x01 000011c4: PUSH1 0x01 000011c6: PUSH1 0xa0 000011c8: SHL 000011c9: SUB 000011ca: AND 000011cb: DUP6 000011cc: DUP8 000011cd: PUSH1 0x40 000011cf: MLOAD 000011d0: PUSH2 0x11d9 000011d3: SWAP2 000011d4: SWAP1 000011d5: PUSH2 0x1562 000011d8: JUMP 000011d9: JUMPDEST 000011da: PUSH0 000011db: PUSH1 0x40 000011dd: MLOAD 000011de: DUP1 000011df: DUP4 000011e0: SUB 000011e1: DUP2 000011e2: DUP6 000011e3: DUP8 000011e4: GAS 000011e5: CALL 000011e6: SWAP3 000011e7: POP 000011e8: POP 000011e9: POP 000011ea: RETURNDATASIZE 000011eb: DUP1 000011ec: PUSH0 000011ed: DUP2 000011ee: EQ 000011ef: PUSH2 0x1213 000011f2: JUMPI 000011f3: PUSH1 0x40 000011f5: MLOAD 000011f6: SWAP2 000011f7: POP 000011f8: PUSH1 0x1f 000011fa: NOT 000011fb: PUSH1 0x3f 000011fd: RETURNDATASIZE 000011fe: ADD 000011ff: AND 00001200: DUP3 00001201: ADD 00001202: PUSH1 0x40 00001204: MSTORE 00001205: RETURNDATASIZE 00001206: DUP3 00001207: MSTORE 00001208: RETURNDATASIZE 00001209: PUSH0 0000120a: PUSH1 0x20 0000120c: DUP5 0000120d: ADD 0000120e: RETURNDATACOPY 0000120f: PUSH2 0x1218 00001212: JUMP 00001213: JUMPDEST 00001214: PUSH1 0x60 00001216: SWAP2 00001217: POP 00001218: JUMPDEST 00001219: POP 0000121a: SWAP2 0000121b: POP 0000121c: SWAP2 0000121d: POP 0000121e: PUSH2 0x1229 00001221: DUP8 00001222: DUP4 00001223: DUP4 00001224: DUP8 00001225: PUSH2 0x1234 00001228: JUMP 00001229: JUMPDEST 0000122a: SWAP8 0000122b: SWAP7 0000122c: POP 0000122d: POP 0000122e: POP 0000122f: POP 00001230: POP 00001231: POP 00001232: POP 00001233: JUMP 00001234: JUMPDEST 00001235: PUSH1 0x60 00001237: DUP4 00001238: ISZERO 00001239: PUSH2 0x12a2 0000123c: JUMPI 0000123d: DUP3 0000123e: MLOAD 0000123f: PUSH0 00001240: SUB 00001241: PUSH2 0x129b 00001244: JUMPI 00001245: PUSH1 0x01 00001247: PUSH1 0x01 00001249: PUSH1 0xa0 0000124b: SHL 0000124c: SUB 0000124d: DUP6 0000124e: AND 0000124f: EXTCODESIZE 00001250: PUSH2 0x129b 00001253: JUMPI 00001254: PUSH1 0x40 00001256: MLOAD 00001257: PUSH3 0x461bcd 0000125b: PUSH1 0xe5 0000125d: SHL 0000125e: DUP2 0000125f: MSTORE 00001260: PUSH1 0x20 00001262: PUSH1 0x04 00001264: DUP3 00001265: ADD 00001266: MSTORE 00001267: PUSH1 0x1d 00001269: PUSH1 0x24 0000126b: DUP3 0000126c: ADD 0000126d: MSTORE 0000126e: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 0000128f: PUSH1 0x44 00001291: DUP3 00001292: ADD 00001293: MSTORE 00001294: PUSH1 0x64 00001296: ADD 00001297: PUSH2 0x0905 0000129a: JUMP 0000129b: JUMPDEST 0000129c: POP 0000129d: DUP2 0000129e: PUSH2 0x0708 000012a1: JUMP 000012a2: JUMPDEST 000012a3: PUSH2 0x0708 000012a6: DUP4 000012a7: DUP4 000012a8: DUP2 000012a9: MLOAD 000012aa: ISZERO 000012ab: PUSH2 0x12b7 000012ae: JUMPI 000012af: DUP2 000012b0: MLOAD 000012b1: DUP1 000012b2: DUP4 000012b3: PUSH1 0x20 000012b5: ADD 000012b6: REVERT 000012b7: JUMPDEST 000012b8: DUP1 000012b9: PUSH1 0x40 000012bb: MLOAD 000012bc: PUSH3 0x461bcd 000012c0: PUSH1 0xe5 000012c2: SHL 000012c3: DUP2 000012c4: MSTORE 000012c5: PUSH1 0x04 000012c7: ADD 000012c8: PUSH2 0x0905 000012cb: SWAP2 000012cc: SWAP1 000012cd: PUSH2 0x13b3 000012d0: JUMP 000012d1: JUMPDEST 000012d2: PUSH0 000012d3: PUSH1 0x20 000012d5: DUP3 000012d6: DUP5 000012d7: SUB 000012d8: SLT 000012d9: ISZERO 000012da: PUSH2 0x12e1 000012dd: JUMPI 000012de: PUSH0 000012df: DUP1 000012e0: REVERT 000012e1: JUMPDEST 000012e2: POP 000012e3: CALLDATALOAD 000012e4: SWAP2 000012e5: SWAP1 000012e6: POP 000012e7: JUMP 000012e8: JUMPDEST 000012e9: PUSH0 000012ea: PUSH2 0x0180 000012ed: DUP3 000012ee: DUP5 000012ef: SUB 000012f0: SLT 000012f1: ISZERO 000012f2: PUSH2 0x12f9 000012f5: JUMPI 000012f6: PUSH0 000012f7: DUP1 000012f8: REVERT 000012f9: JUMPDEST 000012fa: POP 000012fb: SWAP2 000012fc: SWAP1 000012fd: POP 000012fe: JUMP 000012ff: JUMPDEST 00001300: DUP1 00001301: CALLDATALOAD 00001302: PUSH1 0x01 00001304: PUSH1 0x01 00001306: PUSH1 0xa0 00001308: SHL 00001309: SUB 0000130a: DUP2 0000130b: AND 0000130c: DUP2 0000130d: EQ 0000130e: PUSH2 0x1315 00001311: JUMPI 00001312: PUSH0 00001313: DUP1 00001314: REVERT 00001315: JUMPDEST 00001316: SWAP2 00001317: SWAP1 00001318: POP 00001319: JUMP 0000131a: JUMPDEST 0000131b: PUSH0 0000131c: DUP1 0000131d: PUSH2 0x01a0 00001320: DUP4 00001321: DUP6 00001322: SUB 00001323: SLT 00001324: ISZERO 00001325: PUSH2 0x132c 00001328: JUMPI 00001329: PUSH0 0000132a: DUP1 0000132b: REVERT 0000132c: JUMPDEST 0000132d: PUSH2 0x1336 00001330: DUP5 00001331: DUP5 00001332: PUSH2 0x12e8 00001335: JUMP 00001336: JUMPDEST 00001337: SWAP2 00001338: POP 00001339: PUSH2 0x1345 0000133c: PUSH2 0x0180 0000133f: DUP5 00001340: ADD 00001341: PUSH2 0x12ff 00001344: JUMP 00001345: JUMPDEST 00001346: SWAP1 00001347: POP 00001348: SWAP3 00001349: POP 0000134a: SWAP3 0000134b: SWAP1 0000134c: POP 0000134d: JUMP 0000134e: JUMPDEST 0000134f: PUSH0 00001350: PUSH2 0x0180 00001353: DUP3 00001354: DUP5 00001355: SUB 00001356: SLT 00001357: ISZERO 00001358: PUSH2 0x135f 0000135b: JUMPI 0000135c: PUSH0 0000135d: DUP1 0000135e: REVERT 0000135f: JUMPDEST 00001360: PUSH2 0x0c77 00001363: DUP4 00001364: DUP4 00001365: PUSH2 0x12e8 00001368: JUMP 00001369: JUMPDEST 0000136a: PUSH0 0000136b: DUP1 0000136c: PUSH1 0x40 0000136e: DUP4 0000136f: DUP6 00001370: SUB 00001371: SLT 00001372: ISZERO 00001373: PUSH2 0x137a 00001376: JUMPI 00001377: PUSH0 00001378: DUP1 00001379: REVERT 0000137a: JUMPDEST 0000137b: PUSH2 0x1383 0000137e: DUP4 0000137f: PUSH2 0x12ff 00001382: JUMP 00001383: JUMPDEST 00001384: SWAP5 00001385: PUSH1 0x20 00001387: SWAP4 00001388: SWAP1 00001389: SWAP4 0000138a: ADD 0000138b: CALLDATALOAD 0000138c: SWAP4 0000138d: POP 0000138e: POP 0000138f: POP 00001390: JUMP 00001391: JUMPDEST 00001392: PUSH0 00001393: JUMPDEST 00001394: DUP4 00001395: DUP2 00001396: LT 00001397: ISZERO 00001398: PUSH2 0x13ab 0000139b: JUMPI 0000139c: DUP2 0000139d: DUP2 0000139e: ADD 0000139f: MLOAD 000013a0: DUP4 000013a1: DUP3 000013a2: ADD 000013a3: MSTORE 000013a4: PUSH1 0x20 000013a6: ADD 000013a7: PUSH2 0x1393 000013aa: JUMP 000013ab: JUMPDEST 000013ac: POP 000013ad: POP 000013ae: PUSH0 000013af: SWAP2 000013b0: ADD 000013b1: MSTORE 000013b2: JUMP 000013b3: JUMPDEST 000013b4: PUSH1 0x20 000013b6: DUP2 000013b7: MSTORE 000013b8: PUSH0 000013b9: DUP3 000013ba: MLOAD 000013bb: DUP1 000013bc: PUSH1 0x20 000013be: DUP5 000013bf: ADD 000013c0: MSTORE 000013c1: PUSH2 0x13d1 000013c4: DUP2 000013c5: PUSH1 0x40 000013c7: DUP6 000013c8: ADD 000013c9: PUSH1 0x20 000013cb: DUP8 000013cc: ADD 000013cd: PUSH2 0x1391 000013d0: JUMP 000013d1: JUMPDEST 000013d2: PUSH1 0x1f 000013d4: ADD 000013d5: PUSH1 0x1f 000013d7: NOT 000013d8: AND 000013d9: SWAP2 000013da: SWAP1 000013db: SWAP2 000013dc: ADD 000013dd: PUSH1 0x40 000013df: ADD 000013e0: SWAP3 000013e1: SWAP2 000013e2: POP 000013e3: POP 000013e4: JUMP 000013e5: JUMPDEST 000013e6: PUSH4 0x4e487b71 000013eb: PUSH1 0xe0 000013ed: SHL 000013ee: PUSH0 000013ef: MSTORE 000013f0: PUSH1 0x11 000013f2: PUSH1 0x04 000013f4: MSTORE 000013f5: PUSH1 0x24 000013f7: PUSH0 000013f8: REVERT 000013f9: JUMPDEST 000013fa: DUP1 000013fb: DUP3 000013fc: ADD 000013fd: DUP1 000013fe: DUP3 000013ff: GT 00001400: ISZERO 00001401: PUSH2 0x0c7a 00001404: JUMPI 00001405: PUSH2 0x0c7a 00001408: PUSH2 0x13e5 0000140b: JUMP 0000140c: JUMPDEST 0000140d: DUP2 0000140e: DUP2 0000140f: SUB 00001410: DUP2 00001411: DUP2 00001412: GT 00001413: ISZERO 00001414: PUSH2 0x0c7a 00001417: JUMPI 00001418: PUSH2 0x0c7a 0000141b: PUSH2 0x13e5 0000141e: JUMP 0000141f: JUMPDEST 00001420: DUP1 00001421: DUP3 00001422: MUL 00001423: DUP2 00001424: ISZERO 00001425: DUP3 00001426: DUP3 00001427: DIV 00001428: DUP5 00001429: EQ 0000142a: OR 0000142b: PUSH2 0x0c7a 0000142e: JUMPI 0000142f: PUSH2 0x0c7a 00001432: PUSH2 0x13e5 00001435: JUMP 00001436: JUMPDEST 00001437: PUSH1 0x40 00001439: MLOAD 0000143a: PUSH2 0x0180 0000143d: DUP2 0000143e: ADD 0000143f: PUSH8 0xffffffffffffffff 00001448: DUP2 00001449: GT 0000144a: DUP3 0000144b: DUP3 0000144c: LT 0000144d: OR 0000144e: ISZERO 0000144f: PUSH2 0x1466 00001452: JUMPI 00001453: PUSH4 0x4e487b71 00001458: PUSH1 0xe0 0000145a: SHL 0000145b: PUSH0 0000145c: MSTORE 0000145d: PUSH1 0x41 0000145f: PUSH1 0x04 00001461: MSTORE 00001462: PUSH1 0x24 00001464: PUSH0 00001465: REVERT 00001466: JUMPDEST 00001467: PUSH1 0x40 00001469: MSTORE 0000146a: SWAP1 0000146b: JUMP 0000146c: JUMPDEST 0000146d: PUSH0 0000146e: PUSH2 0x0180 00001471: DUP3 00001472: DUP5 00001473: SUB 00001474: SLT 00001475: ISZERO 00001476: PUSH2 0x147d 00001479: JUMPI 0000147a: PUSH0 0000147b: DUP1 0000147c: REVERT 0000147d: JUMPDEST 0000147e: PUSH2 0x1485 00001481: PUSH2 0x1436 00001484: JUMP 00001485: JUMPDEST 00001486: DUP3 00001487: CALLDATALOAD 00001488: DUP2 00001489: MSTORE 0000148a: PUSH1 0x20 0000148c: DUP4 0000148d: ADD 0000148e: CALLDATALOAD 0000148f: PUSH1 0x20 00001491: DUP3 00001492: ADD 00001493: MSTORE 00001494: PUSH1 0x40 00001496: DUP4 00001497: ADD 00001498: CALLDATALOAD 00001499: PUSH1 0x40 0000149b: DUP3 0000149c: ADD 0000149d: MSTORE 0000149e: PUSH1 0x60 000014a0: DUP4 000014a1: ADD 000014a2: CALLDATALOAD 000014a3: PUSH1 0x60 000014a5: DUP3 000014a6: ADD 000014a7: MSTORE 000014a8: PUSH1 0x80 000014aa: DUP4 000014ab: ADD 000014ac: CALLDATALOAD 000014ad: PUSH1 0x80 000014af: DUP3 000014b0: ADD 000014b1: MSTORE 000014b2: PUSH1 0xa0 000014b4: DUP4 000014b5: ADD 000014b6: CALLDATALOAD 000014b7: PUSH1 0xa0 000014b9: DUP3 000014ba: ADD 000014bb: MSTORE 000014bc: PUSH1 0xc0 000014be: DUP4 000014bf: ADD 000014c0: CALLDATALOAD 000014c1: PUSH1 0xc0 000014c3: DUP3 000014c4: ADD 000014c5: MSTORE 000014c6: PUSH1 0xe0 000014c8: DUP4 000014c9: ADD 000014ca: CALLDATALOAD 000014cb: PUSH1 0xe0 000014cd: DUP3 000014ce: ADD 000014cf: MSTORE 000014d0: PUSH2 0x0100 000014d3: DUP1 000014d4: DUP5 000014d5: ADD 000014d6: CALLDATALOAD 000014d7: DUP2 000014d8: DUP4 000014d9: ADD 000014da: MSTORE 000014db: POP 000014dc: PUSH2 0x0120 000014df: DUP1 000014e0: DUP5 000014e1: ADD 000014e2: CALLDATALOAD 000014e3: DUP2 000014e4: DUP4 000014e5: ADD 000014e6: MSTORE 000014e7: POP 000014e8: PUSH2 0x0140 000014eb: DUP1 000014ec: DUP5 000014ed: ADD 000014ee: CALLDATALOAD 000014ef: DUP2 000014f0: DUP4 000014f1: ADD 000014f2: MSTORE 000014f3: POP 000014f4: PUSH2 0x0160 000014f7: DUP1 000014f8: DUP5 000014f9: ADD 000014fa: CALLDATALOAD 000014fb: DUP2 000014fc: DUP4 000014fd: ADD 000014fe: MSTORE 000014ff: POP 00001500: DUP1 00001501: SWAP2 00001502: POP 00001503: POP 00001504: SWAP3 00001505: SWAP2 00001506: POP 00001507: POP 00001508: JUMP 00001509: JUMPDEST 0000150a: PUSH4 0x4e487b71 0000150f: PUSH1 0xe0 00001511: SHL 00001512: PUSH0 00001513: MSTORE 00001514: PUSH1 0x01 00001516: PUSH1 0x04 00001518: MSTORE 00001519: PUSH1 0x24 0000151b: PUSH0 0000151c: REVERT 0000151d: JUMPDEST 0000151e: PUSH0 0000151f: DUP3 00001520: PUSH2 0x1537 00001523: JUMPI 00001524: PUSH4 0x4e487b71 00001529: PUSH1 0xe0 0000152b: SHL 0000152c: PUSH0 0000152d: MSTORE 0000152e: PUSH1 0x12 00001530: PUSH1 0x04 00001532: MSTORE 00001533: PUSH1 0x24 00001535: PUSH0 00001536: REVERT 00001537: JUMPDEST 00001538: POP 00001539: DIV 0000153a: SWAP1 0000153b: JUMP 0000153c: JUMPDEST 0000153d: PUSH0 0000153e: PUSH1 0x20 00001540: DUP3 00001541: DUP5 00001542: SUB 00001543: SLT 00001544: ISZERO 00001545: PUSH2 0x154c 00001548: JUMPI 00001549: PUSH0 0000154a: DUP1 0000154b: REVERT 0000154c: JUMPDEST 0000154d: DUP2 0000154e: MLOAD 0000154f: DUP1 00001550: ISZERO 00001551: ISZERO 00001552: DUP2 00001553: EQ 00001554: PUSH2 0x155b 00001557: JUMPI 00001558: PUSH0 00001559: DUP1 0000155a: REVERT 0000155b: JUMPDEST 0000155c: SWAP4 0000155d: SWAP3 0000155e: POP 0000155f: POP 00001560: POP 00001561: JUMP 00001562: JUMPDEST 00001563: PUSH0 00001564: DUP3 00001565: MLOAD 00001566: PUSH2 0x1573 00001569: DUP2 0000156a: DUP5 0000156b: PUSH1 0x20 0000156d: DUP8 0000156e: ADD 0000156f: PUSH2 0x1391 00001572: JUMP 00001573: JUMPDEST 00001574: SWAP2 00001575: SWAP1 00001576: SWAP2 00001577: ADD 00001578: SWAP3 00001579: SWAP2 0000157a: POP 0000157b: POP 0000157c: JUMP 0000157d: INVALID 0000157e: LOG2 0000157f: PUSH5 0x6970667358 00001585: UNKNOWN(0x22) 00001586: SLT 00001587: KECCAK256 00001588: PUSH14 0x576d9a2f0055dadb6ae9021bb337 00001597: POP 00001598: SWAP8 00001599: CALLVALUE 0000159a: UNKNOWN(0x2D) 0000159b: SWAP2 0000159c: UNKNOWN(0xB1) 0000159d: UNKNOWN(0xBC) 0000159e: EXTCODEHASH 0000159f: UNKNOWN(0xF7) 000015a0: SMOD 000015a1: GAS 000015a2: LOG3 000015a3: BLOBBASEFEE 000015a4: PUSH31
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x5c766aff380df6b115a84e03625eb365b2e503da582f899346b61938e665ded2
call_targets:
0xeb5a8c825582965f1d84606e078620a84ab16afe
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x5c766aff380df6b115a84e03625eb365b2e503da582f899346b61938e665ded2",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xeb5a8c825582965f1d84606e078620a84ab16afe"
],
"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": "0xd0ee2ace",
"selector": "0xd0ee2ace",
"calldata_variants": [
"0xd0ee2ace",
"0xd0ee2ace0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd9fbcb8",
"selector": "0xdd9fbcb8",
"calldata_variants": [
"0xdd9fbcb8",
"0xdd9fbcb80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6e413f5",
"selector": "0xf6e413f5",
"calldata_variants": [
"0xf6e413f5",
"0xf6e413f50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa160c05",
"selector": "0xfa160c05",
"calldata_variants": [
"0xfa160c05",
"0xfa160c050000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaac1846f",
"selector": "0xaac1846f",
"calldata_variants": [
"0xaac1846f",
"0xaac1846f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xac8bbc49",
"selector": "0xac8bbc49",
"calldata_variants": [
"0xac8bbc49",
"0xac8bbc490000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb7f8cf9b",
"selector": "0xb7f8cf9b",
"calldata_variants": [
"0xb7f8cf9b",
"0xb7f8cf9b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc2283f1f",
"selector": "0xc2283f1f",
"calldata_variants": [
"0xc2283f1f",
"0xc2283f1f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1996,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2557,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2722,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 6,
"guards_detected": [],
"untrusted_call_count": 6
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x5c766aff380df6b115a84e03625eb365b2e503da582f899346b61938e665ded2
call_targets:
0xeb5a8c825582965f1d84606e078620a84ab16afe
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x5c766aff380df6b115a84e03625eb365b2e503da582f899346b61938e665ded2",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xeb5a8c825582965f1d84606e078620a84ab16afe"
],
"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": "0xd0ee2ace",
"selector": "0xd0ee2ace",
"calldata_variants": [
"0xd0ee2ace",
"0xd0ee2ace0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd9fbcb8",
"selector": "0xdd9fbcb8",
"calldata_variants": [
"0xdd9fbcb8",
"0xdd9fbcb80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6e413f5",
"selector": "0xf6e413f5",
"calldata_variants": [
"0xf6e413f5",
"0xf6e413f50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa160c05",
"selector": "0xfa160c05",
"calldata_variants": [
"0xfa160c05",
"0xfa160c050000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaac1846f",
"selector": "0xaac1846f",
"calldata_variants": [
"0xaac1846f",
"0xaac1846f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xac8bbc49",
"selector": "0xac8bbc49",
"calldata_variants": [
"0xac8bbc49",
"0xac8bbc490000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb7f8cf9b",
"selector": "0xb7f8cf9b",
"calldata_variants": [
"0xb7f8cf9b",
"0xb7f8cf9b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc2283f1f",
"selector": "0xc2283f1f",
"calldata_variants": [
"0xc2283f1f",
"0xc2283f1f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1996,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2557,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2722,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 6,
"guards_detected": []
}
|
| medium | reentrancy | codex | Interest can be minted multiple times via reentrancy before lastAggUpdateTime is updated | 75 | no | — |
viewevidence_json{
"evidence": "`_mintAggInterest` performs `boldToken.mint(...)` and `stabilityPool.triggerBoldRewards(...)` before setting `lastAggUpdateTime = block.timestamp`.",
"locations": [
"contracts/src/ActivePool.sol:248",
"contracts/src/ActivePool.sol:256",
"contracts/src/ActivePool.sol:259",
"contracts/src/ActivePool.sol:264"
],
"recommendation": "Apply checks-effects-interactions: update `lastAggUpdateTime` (and any other relevant aggregate state) before external calls, or add a reentrancy guard to `mintAggInterest`/`mintAggInterestAndAccountForTroveChange`. Alternatively, split reward distribution so external calls happen after all state updates.",
"exploit_scenario": "If the StabilityPool implementation (or another authorized caller) reenters during `stabilityPool.triggerBoldRewards` inside `_mintAggInterest`, it can call `mintAggInterest()` or `mintAggInterestAndAccountForTroveChange()` again before `lastAggUpdateTime` is set. Because `calcPendingAggInterest()` still uses the old timestamp, the same interest window can be minted repeatedly, inflating BOLD supply and recorded debt."
}
|
| 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": 7
}
|