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

Analysis Run

019c0ea9-085c-723d-86d7-deacd328451d

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 30, 2026 11:28 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
41809 artifact.fetch complete 1 / 3 2 months ago
41810 proxy.resolve complete 1 / 3 2 months ago
41811 tool.cast_disasm complete 1 / 3 2 months ago
41812 analysis.bundle complete 1 / 3 2 months ago
41813 capability.graph complete 1 / 3 2 months ago
41814 detector.run complete 1 / 3 2 months ago
41815 validation.fork complete 1 / 3 2 months ago
42334 report.consolidate complete 1 / 6 2 months ago
42335 tool.slither complete 1 / 2 2 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

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

BlazeStaking._dailyUpdate() (contracts/blazeStaking.sol#373-397) uses a weak PRNG: "tempDayInContract % DAY8 == 0 (contracts/blazeStaking.sol#387)" 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#weak-PRNG

BlazeStaking.calculateSharesAndBonus(uint256,uint256) (contracts/blazeStaking.sol#356-371) performs a multiplication on the result of a division:
	- __bonus = ((__durationInDays - MINIMUM_STAKING_PERIOD) * BASE_1e18) / Percent_In_Days (contracts/blazeStaking.sol#364)
	- __shares = __shares + ((__shares * __bonus) / BASE_1e18) (contracts/blazeStaking.sol#366)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply

BlazeStaking._dailyUpdate() (contracts/blazeStaking.sol#373-397) uses a dangerous strict equality:
	- tempDayInContract % DAY8 == 0 (contracts/blazeStaking.sol#387)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities

BlazeStaking._calculateUserCycleFeesReward(address,uint16).shares (contracts/blazeStaking.sol#561) is a local variable never initialized
BlazeStaking.distributeFeeRewardsForAll().lastCycleDistributionPortion (contracts/blazeStaking.sol#163) is a local variable never initialized
BlazeStaking.distributeFeeRewardsForAll().incentiveAmount (contracts/blazeStaking.sol#164) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables

BlazeStaking._setDiamondHand(address,uint256) (contracts/blazeStaking.sol#593-602) ignores return value by (currentDay,currentCycle,None) = IDiamondHand(_lastDistributionAddress).getCurrentDayAndCycleDetails() (contracts/blazeStaking.sol#594-595)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return

Ownable2Step.transferOwnership(address).newOwner (lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol#43) lacks a zero-check on :
		- _pendingOwner = newOwner (lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol#44)
BlazeStaking.constructor(address)._blazeTokenAddress (contracts/blazeStaking.sol#79) lacks a zero-check on :
		- _blazeToken = _blazeTokenAddress (contracts/blazeStaking.sol#80)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation

BlazeStaking._dailyUpdate() (contracts/blazeStaking.sol#373-397) uses timestamp for comparisons
	Dangerous comparisons:
	- currentDay > currentDayInContract (contracts/blazeStaking.sol#377)
	- i < dayDifference (contracts/blazeStaking.sol#384)
	- tempDayInContract % DAY8 == 0 (contracts/blazeStaking.sol#387)
BlazeStaking._unstakeBlaze(address,uint256) (contracts/blazeStaking.sol#399-417) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(stakeInfo.status != StakeStatus.COMPLETED,blazeStaking:blaze stake has already ended) (contracts/blazeStaking.sol#404)
	- require(bool,string)(block.timestamp >= stakeInfo.maturityTimestamp,blazeStaking:blaze stake not matured) (contracts/blazeStaking.sol#405)
BlazeStaking._distributeFeeRewardsForCycle(uint16,uint32,uint256) (contracts/blazeStaking.sol#492-510) uses timestamp for comparisons
	Dangerous comparisons:
	- __currentDay < _nextCycleDistributionDay[__cycle] (contracts/blazeStaking.sol#497)
BlazeStaking._calculateAndSetNextDistributionDay(uint16) (contracts/blazeStaking.sol#512-519) uses timestamp for comparisons
	Dangerous comparisons:
	- currentDay >= mDay (contracts/blazeStaking.sol#515)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp

SafeERC20._safeTransfer(IERC20,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#176-200) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#179-199)
SafeERC20._safeTransferFrom(IERC20,address,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#212-244) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#221-243)
SafeERC20._safeApprove(IERC20,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#255-279) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#258-278)
StorageSlot.getAddressSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#66-70) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#67-69)
StorageSlot.getBooleanSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#75-79) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#76-78)
StorageSlot.getBytes32Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#84-88) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#85-87)
StorageSlot.getUint256Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#93-97) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#94-96)
StorageSlot.getInt256Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#102-106) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#103-105)
StorageSlot.getStringSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#111-115) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#112-114)
StorageSlot.getStringSlot(string) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#120-124) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#121-123)
StorageSlot.getBytesSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#129-133) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#130-132)
StorageSlot.getBytesSlot(bytes) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#138-142) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#139-141)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

4 different versions of Solidity are used:
	- Version constraint 0.8.24 is used by:
		-0.8.24 (contracts/blazeStaking.sol#2)
		-0.8.24 (contracts/interfaces/IDiamondHand.sol#2)
		-0.8.24 (contracts/utils/constants.sol#2)
		-0.8.24 (contracts/utils/userDefinedType.sol#2)
	- Version constraint ^0.8.20 is used by:
		-^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)
	- Version constraint >=0.6.2 is used by:
		->=0.6.2 (lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol#4)
		->=0.6.2 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
	- Version constraint >=0.4.16 is used by:
		->=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol#4)
		->=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol#4)
		->=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
		->=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- VerbatimInvalidDeduplication
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess.
It is used by:
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)
Version constraint >=0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- NestedCalldataArrayAbiReencodingSizeValidation
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- MissingEscapingInFormatting
	- ArraySliceDynamicallyEncodedBaseType
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow.
It is used by:
	- >=0.6.2 (lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol#4)
	- >=0.6.2 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
Version constraint >=0.4.16 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- DirtyBytesArrayToStorage
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow
	- privateCanBeOverridden
	- SignedArrayStorageCopy
	- ABIEncoderV2StorageArrayWithMultiSlotElement
	- DynamicConstructorArgumentsClippedABIV2
	- UninitializedFunctionPointerInConstructor_0.4.x
	- IncorrectEventSignatureInLibraries_0.4.x
	- ExpExponentCleanup
	- NestedArrayFunctionCallDecoder
	- ZeroFunctionSelector.
It is used by:
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol#4)
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol#4)
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in BlazeStaking._transferETH(address,uint256) (contracts/blazeStaking.sol#521-524):
	- (successful,None) = address(__to).call{value: __amount}() (contracts/blazeStaking.sol#522)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

Parameter BlazeStaking.setLastDistributionAddress(address).__lastDistributionAddress (contracts/blazeStaking.sol#93) is not in mixedCase
Parameter BlazeStaking.stakeBlaze(uint256,uint256).__blazeAmount (contracts/blazeStaking.sol#98) is not in mixedCase
Parameter BlazeStaking.stakeBlaze(uint256,uint256).__durationInDays (contracts/blazeStaking.sol#98) is not in mixedCase
Parameter BlazeStaking.unstakeBlaze(address,uint256).__user (contracts/blazeStaking.sol#139) is not in mixedCase
Parameter BlazeStaking.unstakeBlaze(address,uint256).__id (contracts/blazeStaking.sol#139) is not in mixedCase
Parameter BlazeStaking.getAvailableRewardsForClaim(address).__user (contracts/blazeStaking.sol#221) is not in mixedCase
Parameter BlazeStaking.getStakes(address,uint256,uint256).__user (contracts/blazeStaking.sol#232) is not in mixedCase
Parameter BlazeStaking.getStakes(address,uint256,uint256).__cursor (contracts/blazeStaking.sol#233) is not in mixedCase
Parameter BlazeStaking.getStakes(address,uint256,uint256).__size (contracts/blazeStaking.sol#234) is not in mixedCase
Parameter BlazeStaking.getCurrentSharesOfUser(address).__user (contracts/blazeStaking.sol#261) is not in mixedCase
Parameter BlazeStaking.getUserSharesAtParticularUserIndex(address,uint256).__user (contracts/blazeStaking.sol#266) is not in mixedCase
Parameter BlazeStaking.getUserSharesAtParticularUserIndex(address,uint256).__index (contracts/blazeStaking.sol#267) is not in mixedCase
Parameter BlazeStaking.getTotalCycleRewards(uint16).__cycle (contracts/blazeStaking.sol#295) is not in mixedCase
Parameter BlazeStaking.getNextCycleDistributionDay(uint16).__cycle (contracts/blazeStaking.sol#299) is not in mixedCase
Parameter BlazeStaking.getCurrentCycleIndex(uint16).__cycle (contracts/blazeStaking.sol#303) is not in mixedCase
Parameter BlazeStaking.getUser2888BlazeToken(address,uint256).__user (contracts/blazeStaking.sol#327) is not in mixedCase
Parameter BlazeStaking.getUser2888BlazeToken(address,uint256).__cycle (contracts/blazeStaking.sol#327) is not in mixedCase
Parameter BlazeStaking.getUserLastCycleClaimIndex(address,uint16).__user (contracts/blazeStaking.sol#332) is not in mixedCase
Parameter BlazeStaking.getUserLastCycleClaimIndex(address,uint16).__cycle (contracts/blazeStaking.sol#333) is not in mixedCase
Parameter BlazeStaking.getStakeInfoByUserStakeId(address,uint256).__user (contracts/blazeStaking.sol#341) is not in mixedCase
Parameter BlazeStaking.getStakeInfoByUserStakeId(address,uint256).__userStakeId (contracts/blazeStaking.sol#341) is not in mixedCase
Parameter BlazeStaking.getRewardsPerShare(uint16,uint32).__cycle (contracts/blazeStaking.sol#346) is not in mixedCase
Parameter BlazeStaking.getRewardsPerShare(uint16,uint32).__index (contracts/blazeStaking.sol#347) is not in mixedCase
Parameter BlazeStaking.getUserLatestShareIndex(address).__user (contracts/blazeStaking.sol#352) is not in mixedCase
Parameter BlazeStaking.calculateSharesAndBonus(uint256,uint256).__blazeAmount (contracts/blazeStaking.sol#357) is not in mixedCase
Parameter BlazeStaking.calculateSharesAndBonus(uint256,uint256).__durationInDays (contracts/blazeStaking.sol#358) is not in mixedCase
Variable BlazeStaking._deploymentTimeStamp (contracts/blazeStaking.sol#16) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

BlazeStaking._blazeToken (contracts/blazeStaking.sol#17) should be immutable 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-immutable
. analyzed (12 contracts with 100 detectors), 58 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.8.24",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.8.24",
        "install_stderr": null,
        "install_stdout": "Version '0.8.24' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-_aw4u1ni --include-path /tmp/slither-_aw4u1ni/lib --include-path /tmp/slither-_aw4u1ni/lib/openzeppelin-contracts --allow-paths /tmp/slither-_aw4u1ni,/tmp/slither-_aw4u1ni/lib,/tmp/slither-_aw4u1ni/lib/openzeppelin-contracts,/tmp/slither-_aw4u1ni/src",
    "remappings": [
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/"
    ],
    "source_files": [
        "@openzeppelin/contracts/access/Ownable.sol",
        "@openzeppelin/contracts/access/Ownable2Step.sol",
        "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
        "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
        "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
        "@openzeppelin/contracts/utils/Address.sol",
        "@openzeppelin/contracts/utils/Context.sol",
        "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
        "contracts/blazeStaking.sol",
        "contracts/interfaces/IDiamondHand.sol",
        "contracts/utils/constants.sol",
        "contracts/utils/userDefinedType.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 58,
    "workspace_hash": "dad335438a01f7c5fe0b666e1fb1d28219d68a945b78bc25867970b9f7e6585b",
    "duration_seconds": 1.2241384983062744,
    "solc_version_requested": "0.8.24"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Found two issues: anyone can force‑unstake a matured position (griefing), and stake accounting assumes non‑deflationary transfers which can desync balances if the token takes fees.
View stdout
{"no_findings":false,"summary":"Found two issues: anyone can force‑unstake a matured position (griefing), and stake accounting assumes non‑deflationary transfers which can desync balances if the token takes fees.","findings":[{"severity":"medium","category":"access_control","title":"Anyone can end another user’s matured stake, cutting off their future rewards","exploit_scenario":"An attacker monitors for stakes that just reached maturity and calls `unstakeBlaze(victim, stakeId)`. This immediately marks the stake completed and transfers the principal to the victim, but it also removes the victim’s shares from future reward distributions, effectively griefing them and potentially causing missed cycle rewards.","recommendation":"Restrict `unstakeBlaze` to the stake owner (e.g., `require(msg.sender == __user)`), or add explicit operator approvals if third‑party unstaking is intended.","evidence":"`unstakeBlaze` is `external` and accepts an arbitrary `__user`, then calls `_unstakeBlaze` without checking caller identity.","locations":["contracts/blazeStaking.sol:139"]},{"severity":"low","category":"other","title":"Share/accounting assumes full token transfer; deflationary tokens can break invariants","exploit_scenario":"If the staking token charges transfer fees or is deflationary, the contract credits shares and `_totalBlazeTokenStaked` based on the requested `__blazeAmount`, but receives fewer tokens. This can make the contract insolvent and misallocate rewards, and may revert on unstake due to insufficient balance.","recommendation":"Either restrict `_blazeToken` to non‑fee‑on‑transfer tokens or compute the actual received amount by comparing balances before/after `safeTransferFrom`, then base shares and totals on the received value.","evidence":"Shares and totals are updated using `__blazeAmount` before calling `safeTransferFrom`, and unstake returns the originally recorded amount.","locations":["contracts/blazeStaking.sol:126","contracts/blazeStaking.sol:134"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-0poeessw
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f27-5d6e-77c1-ab91-84a5c1bc1760
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

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

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

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
exec
/bin/bash -lc 'cat /tmp/codex-0poeessw/AUDIT_BUNDLE.txt' in /tmp/codex-0poeessw succeeded in 6ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/blazeStaking.sol
================================================================================
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.24;

import "@openzeppelin/contracts/access/Ownable2Step.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "@openzeppelin/contracts/utils/Context.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
import "./interfaces/IDiamondHand.sol";
import "./utils/constants.sol";
import "./utils/userDefinedType.sol";

contract BlazeStaking is ReentrancyGuard, Context, Ownable2Step {
    using SafeERC20 for IERC20;
exec
/bin/bash -lc 'rg -n "function unstakeBlaze" -n /tmp/codex-0poeessw/contracts/blazeStaking.sol' in /tmp/codex-0poeessw succeeded in 7ms:
139:    function unstakeBlaze(address __user, uint256 __id) external dailyUpdate nonReentrant {
148:    // function unstakeBlazeForOthers(address __user, uint256 __id) external dailyUpdate nonReentrant {
exec
/bin/bash -lc 'rg -n "_setDiamondHand" /tmp/codex-0poeessw/contracts/blazeStaking.sol' in /tmp/codex-0poeessw succeeded in 6ms:
132:            _setDiamondHand(_msgSender(), __blazeAmount);
593:    function _setDiamondHand(address __user, uint256 __amount) private {
exec
/bin/bash -lc 'rg -n "function stakeBlaze" /tmp/codex-0poeessw/contracts/blazeStaking.sol' in /tmp/codex-0poeessw succeeded in 9ms:
98:    function stakeBlaze(uint256 __blazeAmount, uint256 __durationInDays) external dailyUpdate nonReentrant {
exec
/bin/bash -lc "nl -ba /tmp/codex-0poeessw/contracts/blazeStaking.sol | sed -n '98,150p'" in /tmp/codex-0poeessw succeeded in 12ms:
    98	    function stakeBlaze(uint256 __blazeAmount, uint256 __durationInDays) external dailyUpdate nonReentrant {
    99	        // IBlazeToken(_blazeToken).burn(_msgSender(), __blazeAmount);
   100	        // uint8 _isFirstStake = _stakeBlaze(_msgSender(), __blazeAmount, __durationInDays);
   101	
   102	        uint256 stakeId = ++_userAddressToStakeId[_msgSender()];
   103	
   104	        require(
   105	            __durationInDays >= MINIMUM_STAKING_PERIOD && __durationInDays <= MAXIMUM_STAKING_PERIOD,
   106	            "blazeStaking:blaze stake duration not valid"
   107	        );
   108	        //calculate shares
   109	        (uint256 totalShares, ) = calculateSharesAndBonus(__blazeAmount, __durationInDays);
   110	        uint256 globalStakeId = ++_stakeIdCounter;
   111	        _userStakeIdToGlobalStakeId[_msgSender()][stakeId] = globalStakeId;
   112	
   113	        uint32 stakeMaturityTimestamp = uint32(block.timestamp + (__durationInDays * SECONDS_IN_DAY));
   114	
   115	        StakeInfo memory stakeInfo = StakeInfo({
   116	            amount: __blazeAmount,
   117	            shares: totalShares,
exec
/bin/bash -lc "nl -ba /tmp/codex-0poeessw/contracts/blazeStaking.sol | sed -n '585,640p'" in /tmp/codex-0poeessw succeeded in 6ms:
   585	    ) private {
   586	        if (__userClaimCycleIndex != _userAddressToCycleToLastClaimIndex[__user][__cycle].cycleIndex)
   587	            _userAddressToCycleToLastClaimIndex[__user][__cycle].cycleIndex = (__userClaimCycleIndex);
   588	
   589	        if (__userClaimSharesIndex != _userAddressToCycleToLastClaimIndex[__user][__cycle].sharesIndex)
   590	            _userAddressToCycleToLastClaimIndex[__user][__cycle].sharesIndex = uint64(__userClaimSharesIndex);
   591	    }
   592	
   593	    function _setDiamondHand(address __user, uint256 __amount) private {
   594	        (uint256 currentDay, uint256 currentCycle, ) = IDiamondHand(_lastDistributionAddress)
   595	            .getCurrentDayAndCycleDetails();
   596	        uint256 cycleStartDay = (currentCycle - 1) * 888;
   597	        uint256 cycleEndDay = cycleStartDay + 365;
   598	        bool isEligible = currentDay <= cycleEndDay;
   599	        if (isEligible) {
   600	            _user2888CycleBlazeTokenAmount[__user][currentCycle] += __amount;
   601	        }
   602	    }
   603	}
codex
{"no_findings":false,"summary":"Found two issues: anyone can force‑unstake a matured position (griefing), and stake accounting assumes non‑deflationary transfers which can desync balances if the token takes fees.","findings":[{"severity":"medium","category":"access_control","title":"Anyone can end another user’s matured stake, cutting off their future rewards","exploit_scenario":"An attacker monitors for stakes that just reached maturity and calls `unstakeBlaze(victim, stakeId)`. This immediately marks the stake completed and transfers the principal to the victim, but it also removes the victim’s shares from future reward distributions, effectively griefing them and potentially causing missed cycle rewards.","recommendation":"Restrict `unstakeBlaze` to the stake owner (e.g., `require(msg.sender == __user)`), or add explicit operator approvals if third‑party unstaking is intended.","evidence":"`unstakeBlaze` is `external` and accepts an arbitrary `__user`, then calls `_unstakeBlaze` without checking caller identity.","locations":["contracts/blazeStaking.sol:139"]},{"severity":"low","category":"other","title":"Share/accounting assumes full token transfer; deflationary tokens can break invariants","exploit_scenario":"If the staking token charges transfer fees or is deflationary, the contract credits shares and `_totalBlazeTokenStaked` based on the requested `__blazeAmount`, but receives fewer tokens. This can make the contract insolvent and misallocate rewards, and may revert on unstake due to insufficient balance.","recommendation":"Either restrict `_blazeToken` to non‑fee‑on‑transfer tokens or compute the actual received amount by comparing balances before/after `safeTransferFrom`, then base shares and totals on the received value.","evidence":"Shares and totals are updated using `__blazeAmount` before calling `safeTransferFrom`, and unstake returns the originally recorded amount.","locations":["contracts/blazeStaking.sol:126","contracts/blazeStaking.sol:134"]}]}
tokens used
37,135
Metadata
{
    "codex": {
        "ran_at": "2026-01-30T13:48:00.266498+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 13,
        "import_count": 13,
        "first_party_contracts_count": 4
    },
    "summary": "Found two issues: anyone can force\u2011unstake a matured position (griefing), and stake accounting assumes non\u2011deflationary transfers which can desync balances if the token takes fees.",
    "raw_final": {
        "summary": "Found two issues: anyone can force\u2011unstake a matured position (griefing), and stake accounting assumes non\u2011deflationary transfers which can desync balances if the token takes fees.",
        "findings": [
            {
                "title": "Anyone can end another user\u2019s matured stake, cutting off their future rewards",
                "category": "access_control",
                "evidence": "`unstakeBlaze` is `external` and accepts an arbitrary `__user`, then calls `_unstakeBlaze` without checking caller identity.",
                "severity": "medium",
                "locations": [
                    "contracts/blazeStaking.sol:139"
                ],
                "recommendation": "Restrict `unstakeBlaze` to the stake owner (e.g., `require(msg.sender == __user)`), or add explicit operator approvals if third\u2011party unstaking is intended.",
                "exploit_scenario": "An attacker monitors for stakes that just reached maturity and calls `unstakeBlaze(victim, stakeId)`. This immediately marks the stake completed and transfers the principal to the victim, but it also removes the victim\u2019s shares from future reward distributions, effectively griefing them and potentially causing missed cycle rewards."
            },
            {
                "title": "Share/accounting assumes full token transfer; deflationary tokens can break invariants",
                "category": "other",
                "evidence": "Shares and totals are updated using `__blazeAmount` before calling `safeTransferFrom`, and unstake returns the originally recorded amount.",
                "severity": "low",
                "locations": [
                    "contracts/blazeStaking.sol:126",
                    "contracts/blazeStaking.sol:134"
                ],
                "recommendation": "Either restrict `_blazeToken` to non\u2011fee\u2011on\u2011transfer tokens or compute the actual received amount by comparing balances before/after `safeTransferFrom`, then base shares and totals on the received value.",
                "exploit_scenario": "If the staking token charges transfer fees or is deflationary, the contract credits shares and `_totalBlazeTokenStaked` based on the requested `__blazeAmount`, but receives fewer tokens. This can make the contract insolvent and misallocate rewards, and may revert on unstake due to insufficient balance."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
1
Total opcodes
6868
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01fd
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x8ac81ba2
00000019: GT
0000001a: PUSH2 0x010d
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xb92f46cd
00000024: GT
00000025: PUSH2 0x00a0
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xcf9a3361
0000002f: GT
00000030: PUSH2 0x006f
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xcf9a3361
0000003a: EQ
0000003b: PUSH2 0x0702
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xe30c3978
00000045: EQ
00000046: PUSH2 0x0722
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf2fde38b
00000050: EQ
00000051: PUSH2 0x0740
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xfaa94d3b
0000005b: EQ
0000005c: PUSH2 0x0760
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xfbf9529d
00000066: EQ
00000067: PUSH2 0x0796
0000006a: JUMPI
0000006b: PUSH1 0x00
0000006d: DUP1
0000006e: REVERT
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0xb92f46cd
00000076: EQ
00000077: PUSH2 0x0665
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xc0e764cb
00000081: EQ
00000082: PUSH2 0x0696
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xc36e60a9
0000008c: EQ
0000008d: PUSH2 0x06b6
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xc61697aa
00000097: EQ
00000098: PUSH2 0x06cb
0000009b: JUMPI
0000009c: PUSH1 0x00
0000009e: DUP1
0000009f: REVERT
000000a0: JUMPDEST
000000a1: DUP1
000000a2: PUSH4 0xa84dd993
000000a7: GT
000000a8: PUSH2 0x00dc
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xa84dd993
000000b2: EQ
000000b3: PUSH2 0x05d7
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xaea80d8e
000000bd: EQ
000000be: PUSH2 0x060e
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xb48a8fa0
000000c8: EQ
000000c9: PUSH2 0x0630
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0xb729bd24
000000d3: EQ
000000d4: PUSH2 0x0650
000000d7: JUMPI
000000d8: PUSH1 0x00
000000da: DUP1
000000db: REVERT
000000dc: JUMPDEST
000000dd: DUP1
000000de: PUSH4 0x8ac81ba2
000000e3: EQ
000000e4: PUSH2 0x0534
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0x8da5cb5b
000000ee: EQ
000000ef: PUSH2 0x0554
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0x8e48426f
000000f9: EQ
000000fa: PUSH2 0x0572
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0x92013f73
00000104: EQ
00000105: PUSH2 0x0587
00000108: JUMPI
00000109: PUSH1 0x00
0000010b: DUP1
0000010c: REVERT
0000010d: JUMPDEST
0000010e: DUP1
0000010f: PUSH4 0x2c1fc492
00000114: GT
00000115: PUSH2 0x0190
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x64deb928
0000011f: GT
00000120: PUSH2 0x015f
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x64deb928
0000012a: EQ
0000012b: PUSH2 0x0461
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x715018a6
00000135: EQ
00000136: PUSH2 0x04aa
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0x73b714d3
00000140: EQ
00000141: PUSH2 0x04bf
00000144: JUMPI
00000145: DUP1
00000146: PUSH4 0x79ba5097
0000014b: EQ
0000014c: PUSH2 0x050a
0000014f: JUMPI
00000150: DUP1
00000151: PUSH4 0x86491dd9
00000156: EQ
00000157: PUSH2 0x051f
0000015a: JUMPI
0000015b: PUSH1 0x00
0000015d: DUP1
0000015e: REVERT
0000015f: JUMPDEST
00000160: DUP1
00000161: PUSH4 0x2c1fc492
00000166: EQ
00000167: PUSH2 0x03f4
0000016a: JUMPI
0000016b: DUP1
0000016c: PUSH4 0x2da496e3
00000171: EQ
00000172: PUSH2 0x0409
00000175: JUMPI
00000176: DUP1
00000177: PUSH4 0x51d18598
0000017c: EQ
0000017d: PUSH2 0x0437
00000180: JUMPI
00000181: DUP1
00000182: PUSH4 0x60484f1b
00000187: EQ
00000188: PUSH2 0x044c
0000018b: JUMPI
0000018c: PUSH1 0x00
0000018e: DUP1
0000018f: REVERT
00000190: JUMPDEST
00000191: DUP1
00000192: PUSH4 0x13480222
00000197: GT
00000198: PUSH2 0x01cc
0000019b: JUMPI
0000019c: DUP1
0000019d: PUSH4 0x13480222
000001a2: EQ
000001a3: PUSH2 0x0321
000001a6: JUMPI
000001a7: DUP1
000001a8: PUSH4 0x24bc8d3f
000001ad: EQ
000001ae: PUSH2 0x0353
000001b1: JUMPI
000001b2: DUP1
000001b3: PUSH4 0x260270c7
000001b8: EQ
000001b9: PUSH2 0x03a4
000001bc: JUMPI
000001bd: DUP1
000001be: PUSH4 0x28e4e99e
000001c3: EQ
000001c4: PUSH2 0x03c4
000001c7: JUMPI
000001c8: PUSH1 0x00
000001ca: DUP1
000001cb: REVERT
000001cc: JUMPDEST
000001cd: DUP1
000001ce: PUSH4 0x01a4146f
000001d3: EQ
000001d4: PUSH2 0x0221
000001d7: JUMPI
000001d8: DUP1
000001d9: PUSH4 0x04010c03
000001de: EQ
000001df: PUSH2 0x028e
000001e2: JUMPI
000001e3: DUP1
000001e4: PUSH4 0x0d1269ac
000001e9: EQ
000001ea: PUSH2 0x02b0
000001ed: JUMPI
000001ee: DUP1
000001ef: PUSH4 0x10d3872a
000001f4: EQ
000001f5: PUSH2 0x02dd
000001f8: JUMPI
000001f9: PUSH1 0x00
000001fb: DUP1
000001fc: REVERT
000001fd: JUMPDEST
000001fe: CALLDATASIZE
000001ff: PUSH2 0x021c
00000202: JUMPI
00000203: CALLVALUE
00000204: PUSH1 0x0b
00000206: PUSH1 0x00
00000208: DUP3
00000209: DUP3
0000020a: SLOAD
0000020b: PUSH2 0x0214
0000020e: SWAP2
0000020f: SWAP1
00000210: PUSH2 0x2554
00000213: JUMP
00000214: JUMPDEST
00000215: SWAP3
00000216: POP
00000217: POP
00000218: DUP2
00000219: SWAP1
0000021a: SSTORE
0000021b: STOP
0000021c: JUMPDEST
0000021d: PUSH1 0x00
0000021f: DUP1
00000220: REVERT
00000221: JUMPDEST
00000222: CALLVALUE
00000223: DUP1
00000224: ISZERO
00000225: PUSH2 0x022d
00000228: JUMPI
00000229: PUSH1 0x00
0000022b: DUP1
0000022c: REVERT
0000022d: JUMPDEST
0000022e: POP
0000022f: PUSH2 0x0274
00000232: PUSH2 0x023c
00000235: CALLDATASIZE
00000236: PUSH1 0x04
00000238: PUSH2 0x2583
0000023b: JUMP
0000023c: JUMPDEST
0000023d: PUSH1 0x01
0000023f: PUSH1 0x01
00000241: PUSH1 0xa0
00000243: SHL
00000244: SUB
00000245: SWAP2
00000246: SWAP1
00000247: SWAP2
00000248: AND
00000249: PUSH1 0x00
0000024b: SWAP1
0000024c: DUP2
0000024d: MSTORE
0000024e: PUSH1 0x16
00000250: PUSH1 0x20
00000252: SWAP1
00000253: DUP2
00000254: MSTORE
00000255: PUSH1 0x40
00000257: DUP1
00000258: DUP4
00000259: KECCAK256
0000025a: SWAP4
0000025b: DUP4
0000025c: MSTORE
0000025d: SWAP3
0000025e: SWAP1
0000025f: MSTORE
00000260: KECCAK256
00000261: PUSH1 0x01
00000263: DUP2
00000264: ADD
00000265: SLOAD
00000266: SWAP1
00000267: SLOAD
00000268: SWAP1
00000269: SWAP2
0000026a: PUSH4 0xffffffff
0000026f: SWAP1
00000270: SWAP2
00000271: AND
00000272: SWAP1
00000273: JUMP
00000274: JUMPDEST
00000275: PUSH1 0x40
00000277: DUP1
00000278: MLOAD
00000279: SWAP3
0000027a: DUP4
0000027b: MSTORE
0000027c: PUSH1 0x20
0000027e: DUP4
0000027f: ADD
00000280: SWAP2
00000281: SWAP1
00000282: SWAP2
00000283: MSTORE
00000284: ADD
00000285: JUMPDEST
00000286: PUSH1 0x40
00000288: MLOAD
00000289: DUP1
0000028a: SWAP2
0000028b: SUB
0000028c: SWAP1
0000028d: RETURN
0000028e: JUMPDEST
0000028f: CALLVALUE
00000290: DUP1
00000291: ISZERO
00000292: PUSH2 0x029a
00000295: JUMPI
00000296: PUSH1 0x00
00000298: DUP1
00000299: REVERT
0000029a: JUMPDEST
0000029b: POP
0000029c: PUSH2 0x02ae
0000029f: PUSH2 0x02a9
000002a2: CALLDATASIZE
000002a3: PUSH1 0x04
000002a5: PUSH2 0x25ad
000002a8: JUMP
000002a9: JUMPDEST
000002aa: PUSH2 0x07ab
000002ad: JUMP
000002ae: JUMPDEST
000002af: STOP
000002b0: JUMPDEST
000002b1: CALLVALUE
000002b2: DUP1
000002b3: ISZERO
000002b4: PUSH2 0x02bc
000002b7: JUMPI
000002b8: PUSH1 0x00
000002ba: DUP1
000002bb: REVERT
000002bc: JUMPDEST
000002bd: POP
000002be: PUSH2 0x02d0
000002c1: PUSH2 0x02cb
000002c4: CALLDATASIZE
000002c5: PUSH1 0x04
000002c7: PUSH2 0x2583
000002ca: JUMP
000002cb: JUMPDEST
000002cc: PUSH2 0x0a6e
000002cf: JUMP
000002d0: JUMPDEST
000002d1: PUSH1 0x40
000002d3: MLOAD
000002d4: PUSH2 0x0285
000002d7: SWAP2
000002d8: SWAP1
000002d9: PUSH2 0x2658
000002dc: JUMP
000002dd: JUMPDEST
000002de: CALLVALUE
000002df: DUP1
000002e0: ISZERO
000002e1: PUSH2 0x02e9
000002e4: JUMPI
000002e5: PUSH1 0x00
000002e7: DUP1
000002e8: REVERT
000002e9: JUMPDEST
000002ea: POP
000002eb: PUSH2 0x02fd
000002ee: PUSH2 0x02f8
000002f1: CALLDATASIZE
000002f2: PUSH1 0x04
000002f4: PUSH2 0x2678
000002f7: JUMP
000002f8: JUMPDEST
000002f9: PUSH2 0x0b2d
000002fc: JUMP
000002fd: JUMPDEST
000002fe: PUSH1 0x40
00000300: DUP1
00000301: MLOAD
00000302: PUSH4 0xffffffff
00000307: SWAP1
00000308: SWAP4
00000309: AND
0000030a: DUP4
0000030b: MSTORE
0000030c: PUSH1 0x01
0000030e: PUSH1 0x01
00000310: PUSH1 0x60
00000312: SHL
00000313: SUB
00000314: SWAP1
00000315: SWAP2
00000316: AND
00000317: PUSH1 0x20
00000319: DUP4
0000031a: ADD
0000031b: MSTORE
0000031c: ADD
0000031d: PUSH2 0x0285
00000320: JUMP
00000321: JUMPDEST
00000322: CALLVALUE
00000323: DUP1
00000324: ISZERO
00000325: PUSH2 0x032d
00000328: JUMPI
00000329: PUSH1 0x00
0000032b: DUP1
0000032c: REVERT
0000032d: JUMPDEST
0000032e: POP
0000032f: PUSH1 0x04
00000331: SLOAD
00000332: PUSH1 0x01
00000334: PUSH1 0x01
00000336: PUSH1 0xa0
00000338: SHL
00000339: SUB
0000033a: AND
0000033b: JUMPDEST
0000033c: PUSH1 0x40
0000033e: MLOAD
0000033f: PUSH1 0x01
00000341: PUSH1 0x01
00000343: PUSH1 0xa0
00000345: SHL
00000346: SUB
00000347: SWAP1
00000348: SWAP2
00000349: AND
0000034a: DUP2
0000034b: MSTORE
0000034c: PUSH1 0x20
0000034e: ADD
0000034f: PUSH2 0x0285
00000352: JUMP
00000353: JUMPDEST
00000354: CALLVALUE
00000355: DUP1
00000356: ISZERO
00000357: PUSH2 0x035f
0000035a: JUMPI
0000035b: PUSH1 0x00
0000035d: DUP1
0000035e: REVERT
0000035f: JUMPDEST
00000360: POP
00000361: PUSH2 0x0396
00000364: PUSH2 0x036e
00000367: CALLDATASIZE
00000368: PUSH1 0x04
0000036a: PUSH2 0x2583
0000036d: JUMP
0000036e: JUMPDEST
0000036f: PUSH1 0x01
00000371: PUSH1 0x01
00000373: PUSH1 0xa0
00000375: SHL
00000376: SUB
00000377: SWAP2
00000378: SWAP1
00000379: SWAP2
0000037a: AND
0000037b: PUSH1 0x00
0000037d: SWAP1
0000037e: DUP2
0000037f: MSTORE
00000380: PUSH1 0x17
00000382: PUSH1 0x20
00000384: SWAP1
00000385: DUP2
00000386: MSTORE
00000387: PUSH1 0x40
00000389: DUP1
0000038a: DUP4
0000038b: KECCAK256
0000038c: SWAP4
0000038d: DUP4
0000038e: MSTORE
0000038f: SWAP3
00000390: SWAP1
00000391: MSTORE
00000392: KECCAK256
00000393: SLOAD
00000394: SWAP1
00000395: JUMP
00000396: JUMPDEST
00000397: PUSH1 0x40
00000399: MLOAD
0000039a: SWAP1
0000039b: DUP2
0000039c: MSTORE
0000039d: PUSH1 0x20
0000039f: ADD
000003a0: PUSH2 0x0285
000003a3: JUMP
000003a4: JUMPDEST
000003a5: CALLVALUE
000003a6: DUP1
000003a7: ISZERO
000003a8: PUSH2 0x03b0
000003ab: JUMPI
000003ac: PUSH1 0x00
000003ae: DUP1
000003af: REVERT
000003b0: JUMPDEST
000003b1: POP
000003b2: PUSH2 0x02ae
000003b5: PUSH2 0x03bf
000003b8: CALLDATASIZE
000003b9: PUSH1 0x04
000003bb: PUSH2 0x2583
000003be: JUMP
000003bf: JUMPDEST
000003c0: PUSH2 0x0b75
000003c3: JUMP
000003c4: JUMPDEST
000003c5: CALLVALUE
000003c6: DUP1
000003c7: ISZERO
000003c8: PUSH2 0x03d0
000003cb: JUMPI
000003cc: PUSH1 0x00
000003ce: DUP1
000003cf: REVERT
000003d0: JUMPDEST
000003d1: POP
000003d2: PUSH2 0x03d9
000003d5: PUSH2 0x0bb6
000003d8: JUMP
000003d9: JUMPDEST
000003da: PUSH1 0x40
000003dc: DUP1
000003dd: MLOAD
000003de: SWAP4
000003df: DUP5
000003e0: MSTORE
000003e1: PUSH1 0x20
000003e3: DUP5
000003e4: ADD
000003e5: SWAP3
000003e6: SWAP1
000003e7: SWAP3
000003e8: MSTORE
000003e9: SWAP1
000003ea: DUP3
000003eb: ADD
000003ec: MSTORE
000003ed: PUSH1 0x60
000003ef: ADD
000003f0: PUSH2 0x0285
000003f3: JUMP
000003f4: JUMPDEST
000003f5: CALLVALUE
000003f6: DUP1
000003f7: ISZERO
000003f8: PUSH2 0x0400
000003fb: JUMPI
000003fc: PUSH1 0x00
000003fe: DUP1
000003ff: REVERT
00000400: JUMPDEST
00000401: POP
00000402: PUSH2 0x03d9
00000405: PUSH2 0x0bdc
00000408: JUMP
00000409: JUMPDEST
0000040a: CALLVALUE
0000040b: DUP1
0000040c: ISZERO
0000040d: PUSH2 0x0415
00000410: JUMPI
00000411: PUSH1 0x00
00000413: DUP1
00000414: REVERT
00000415: JUMPDEST
00000416: POP
00000417: PUSH2 0x0429
0000041a: PUSH2 0x0424
0000041d: CALLDATASIZE
0000041e: PUSH1 0x04
00000420: PUSH2 0x26ab
00000423: JUMP
00000424: JUMPDEST
00000425: PUSH2 0x0bf7
00000428: JUMP
00000429: JUMPDEST
0000042a: PUSH1 0x40
0000042c: MLOAD
0000042d: PUSH2 0x0285
00000430: SWAP3
00000431: SWAP2
00000432: SWAP1
00000433: PUSH2 0x26de
00000436: JUMP
00000437: JUMPDEST
00000438: CALLVALUE
00000439: DUP1
0000043a: ISZERO
0000043b: PUSH2 0x0443
0000043e: JUMPI
0000043f: PUSH1 0x00
00000441: DUP1
00000442: REVERT
00000443: JUMPDEST
00000444: POP
00000445: PUSH1 0x09
00000447: SLOAD
00000448: PUSH2 0x0396
0000044b: JUMP
0000044c: JUMPDEST
0000044d: CALLVALUE
0000044e: DUP1
0000044f: ISZERO
00000450: PUSH2 0x0458
00000453: JUMPI
00000454: PUSH1 0x00
00000456: DUP1
00000457: REVERT
00000458: JUMPDEST
00000459: POP
0000045a: PUSH2 0x02ae
0000045d: PUSH2 0x0d8a
00000460: JUMP
00000461: JUMPDEST
00000462: CALLVALUE
00000463: DUP1
00000464: ISZERO
00000465: PUSH2 0x046d
00000468: JUMPI
00000469: PUSH1 0x00
0000046b: DUP1
0000046c: REVERT
0000046d: JUMPDEST
0000046e: POP
0000046f: PUSH2 0x0495
00000472: PUSH32 0x00000000000000000000000000000000000000000000000000000000667be25b
00000493: DUP2
00000494: JUMP
00000495: JUMPDEST
00000496: PUSH1 0x40
00000498: MLOAD
00000499: PUSH4 0xffffffff
0000049e: SWAP1
0000049f: SWAP2
000004a0: AND
000004a1: DUP2
000004a2: MSTORE
000004a3: PUSH1 0x20
000004a5: ADD
000004a6: PUSH2 0x0285
000004a9: JUMP
000004aa: JUMPDEST
000004ab: CALLVALUE
000004ac: DUP1
000004ad: ISZERO
000004ae: PUSH2 0x04b6
000004b1: JUMPI
000004b2: PUSH1 0x00
000004b4: DUP1
000004b5: REVERT
000004b6: JUMPDEST
000004b7: POP
000004b8: PUSH2 0x02ae
000004bb: PUSH2 0x0e20
000004be: JUMP
000004bf: JUMPDEST
000004c0: CALLVALUE
000004c1: DUP1
000004c2: ISZERO
000004c3: PUSH2 0x04cb
000004c6: JUMPI
000004c7: PUSH1 0x00
000004c9: DUP1
000004ca: REVERT
000004cb: JUMPDEST
000004cc: POP
000004cd: PUSH2 0x0396
000004d0: PUSH2 0x04da
000004d3: CALLDATASIZE
000004d4: PUSH1 0x04
000004d6: PUSH2 0x274c
000004d9: JUMP
000004da: JUMPDEST
000004db: PUSH1 0x01
000004dd: PUSH1 0x01
000004df: PUSH1 0xa0
000004e1: SHL
000004e2: SUB
000004e3: AND
000004e4: PUSH1 0x00
000004e6: SWAP1
000004e7: DUP2
000004e8: MSTORE
000004e9: PUSH1 0x16
000004eb: PUSH1 0x20
000004ed: SWAP1
000004ee: DUP2
000004ef: MSTORE
000004f0: PUSH1 0x40
000004f2: DUP1
000004f3: DUP4
000004f4: KECCAK256
000004f5: PUSH1 0x15
000004f7: DUP4
000004f8: MSTORE
000004f9: DUP2
000004fa: DUP5
000004fb: KECCAK256
000004fc: SLOAD
000004fd: DUP5
000004fe: MSTORE
000004ff: SWAP1
00000500: SWAP2
00000501: MSTORE
00000502: SWAP1
00000503: KECCAK256
00000504: PUSH1 0x01
00000506: ADD
00000507: SLOAD
00000508: SWAP1
00000509: JUMP
0000050a: JUMPDEST
0000050b: CALLVALUE
0000050c: DUP1
0000050d: ISZERO
0000050e: PUSH2 0x0516
00000511: JUMPI
00000512: PUSH1 0x00
00000514: DUP1
00000515: REVERT
00000516: JUMPDEST
00000517: POP
00000518: PUSH2 0x02ae
0000051b: PUSH2 0x0e32
0000051e: JUMP
0000051f: JUMPDEST
00000520: CALLVALUE
00000521: DUP1
00000522: ISZERO
00000523: PUSH2 0x052b
00000526: JUMPI
00000527: PUSH1 0x00
00000529: DUP1
0000052a: REVERT
0000052b: JUMPDEST
0000052c: POP
0000052d: PUSH2 0x02ae
00000530: PUSH2 0x0e76
00000533: JUMP
00000534: JUMPDEST
00000535: CALLVALUE
00000536: DUP1
00000537: ISZERO
00000538: PUSH2 0x0540
0000053b: JUMPI
0000053c: PUSH1 0x00
0000053e: DUP1
0000053f: REVERT
00000540: JUMPDEST
00000541: POP
00000542: PUSH1 0x0c
00000544: SLOAD
00000545: PUSH1 0xff
00000547: AND
00000548: PUSH1 0x40
0000054a: MLOAD
0000054b: PUSH2 0x0285
0000054e: SWAP2
0000054f: SWAP1
00000550: PUSH2 0x2767
00000553: JUMP
00000554: JUMPDEST
00000555: CALLVALUE
00000556: DUP1
00000557: ISZERO
00000558: PUSH2 0x0560
0000055b: JUMPI
0000055c: PUSH1 0x00
0000055e: DUP1
0000055f: REVERT
00000560: JUMPDEST
00000561: POP
00000562: PUSH1 0x01
00000564: SLOAD
00000565: PUSH1 0x01
00000567: PUSH1 0x01
00000569: PUSH1 0xa0
0000056b: SHL
0000056c: SUB
0000056d: AND
0000056e: PUSH2 0x033b
00000571: JUMP
00000572: JUMPDEST
00000573: CALLVALUE
00000574: DUP1
00000575: ISZERO
00000576: PUSH2 0x057e
00000579: JUMPI
0000057a: PUSH1 0x00
0000057c: DUP1
0000057d: REVERT
0000057e: JUMPDEST
0000057f: POP
00000580: PUSH2 0x02ae
00000583: PUSH2 0x0eef
00000586: JUMP
00000587: JUMPDEST
00000588: CALLVALUE
00000589: DUP1
0000058a: ISZERO
0000058b: PUSH2 0x0593
0000058e: JUMPI
0000058f: PUSH1 0x00
00000591: DUP1
00000592: REVERT
00000593: JUMPDEST
00000594: POP
00000595: PUSH2 0x0274
00000598: PUSH2 0x05a2
0000059b: CALLDATASIZE
0000059c: PUSH1 0x04
0000059e: PUSH2 0x277a
000005a1: JUMP
000005a2: JUMPDEST
000005a3: PUSH2 0xffff
000005a6: SWAP2
000005a7: SWAP1
000005a8: SWAP2
000005a9: AND
000005aa: PUSH1 0x00
000005ac: SWAP1
000005ad: DUP2
000005ae: MSTORE
000005af: PUSH1 0x10
000005b1: PUSH1 0x20
000005b3: SWAP1
000005b4: DUP2
000005b5: MSTORE
000005b6: PUSH1 0x40
000005b8: DUP1
000005b9: DUP4
000005ba: KECCAK256
000005bb: PUSH4 0xffffffff
000005c0: SWAP5
000005c1: DUP6
000005c2: AND
000005c3: DUP5
000005c4: MSTORE
000005c5: SWAP1
000005c6: SWAP2
000005c7: MSTORE
000005c8: SWAP1
000005c9: KECCAK256
000005ca: PUSH1 0x01
000005cc: DUP2
000005cd: ADD
000005ce: SLOAD
000005cf: SWAP1
000005d0: SLOAD
000005d1: SWAP1
000005d2: SWAP3
000005d3: SWAP2
000005d4: AND
000005d5: SWAP1
000005d6: JUMP
000005d7: JUMPDEST
000005d8: CALLVALUE
000005d9: DUP1
000005da: ISZERO
000005db: PUSH2 0x05e3
000005de: JUMPI
000005df: PUSH1 0x00
000005e1: DUP1
000005e2: REVERT
000005e3: JUMPDEST
000005e4: POP
000005e5: PUSH2 0x0396
000005e8: PUSH2 0x05f2
000005eb: CALLDATASIZE
000005ec: PUSH1 0x04
000005ee: PUSH2 0x27ba
000005f1: JUMP
000005f2: JUMPDEST
000005f3: PUSH2 0xffff
000005f6: AND
000005f7: PUSH1 0x00
000005f9: SWAP1
000005fa: DUP2
000005fb: MSTORE
000005fc: PUSH1 0x0f
000005fe: PUSH1 0x20
00000600: MSTORE
00000601: PUSH1 0x40
00000603: SWAP1
00000604: KECCAK256
00000605: SLOAD
00000606: PUSH4 0xffffffff
0000060b: AND
0000060c: SWAP1
0000060d: JUMP
0000060e: JUMPDEST
0000060f: CALLVALUE
00000610: DUP1
00000611: ISZERO
00000612: PUSH2 0x061a
00000615: JUMPI
00000616: PUSH1 0x00
00000618: DUP1
00000619: REVERT
0000061a: JUMPDEST
0000061b: POP
0000061c: PUSH1 0x04
0000061e: SLOAD
0000061f: PUSH1 0x01
00000621: PUSH1 0xa0
00000623: SHL
00000624: SWAP1
00000625: DIV
00000626: PUSH4 0xffffffff
0000062b: AND
0000062c: PUSH2 0x0396
0000062f: JUMP
00000630: JUMPDEST
00000631: CALLVALUE
00000632: DUP1
00000633: ISZERO
00000634: PUSH2 0x063c
00000637: JUMPI
00000638: PUSH1 0x00
0000063a: DUP1
0000063b: REVERT
0000063c: JUMPDEST
0000063d: POP
0000063e: PUSH2 0x0274
00000641: PUSH2 0x064b
00000644: CALLDATASIZE
00000645: PUSH1 0x04
00000647: PUSH2 0x25ad
0000064a: JUMP
0000064b: JUMPDEST
0000064c: PUSH2 0x0ef7
0000064f: JUMP
00000650: JUMPDEST
00000651: CALLVALUE
00000652: DUP1
00000653: ISZERO
00000654: PUSH2 0x065c
00000657: JUMPI
00000658: PUSH1 0x00
0000065a: DUP1
0000065b: REVERT
0000065c: JUMPDEST
0000065d: POP
0000065e: PUSH1 0x0b
00000660: SLOAD
00000661: PUSH2 0x0396
00000664: JUMP
00000665: JUMPDEST
00000666: CALLVALUE
00000667: DUP1
00000668: ISZERO
00000669: PUSH2 0x0671
0000066c: JUMPI
0000066d: PUSH1 0x00
0000066f: DUP1
00000670: REVERT
00000671: JUMPDEST
00000672: POP
00000673: PUSH2 0x0396
00000676: PUSH2 0x0680
00000679: CALLDATASIZE
0000067a: PUSH1 0x04
0000067c: PUSH2 0x27ba
0000067f: JUMP
00000680: JUMPDEST
00000681: PUSH2 0xffff
00000684: AND
00000685: PUSH1 0x00
00000687: SWAP1
00000688: DUP2
00000689: MSTORE
0000068a: PUSH1 0x0d
0000068c: PUSH1 0x20
0000068e: MSTORE
0000068f: PUSH1 0x40
00000691: SWAP1
00000692: KECCAK256
00000693: SLOAD
00000694: SWAP1
00000695: JUMP
00000696: JUMPDEST
00000697: CALLVALUE
00000698: DUP1
00000699: ISZERO
0000069a: PUSH2 0x06a2
0000069d: JUMPI
0000069e: PUSH1 0x00
000006a0: DUP1
000006a1: REVERT
000006a2: JUMPDEST
000006a3: POP
000006a4: PUSH2 0x02ae
000006a7: PUSH2 0x06b1
000006aa: CALLDATASIZE
000006ab: PUSH1 0x04
000006ad: PUSH2 0x274c
000006b0: JUMP
000006b1: JUMPDEST
000006b2: PUSH2 0x0f79
000006b5: JUMP
000006b6: JUMPDEST
000006b7: CALLVALUE
000006b8: DUP1
000006b9: ISZERO
000006ba: PUSH2 0x06c2
000006bd: JUMPI
000006be: PUSH1 0x00
000006c0: DUP1
000006c1: REVERT
000006c2: JUMPDEST
000006c3: POP
000006c4: PUSH2 0x02ae
000006c7: PUSH2 0x1018
000006ca: JUMP
000006cb: JUMPDEST
000006cc: CALLVALUE
000006cd: DUP1
000006ce: ISZERO
000006cf: PUSH2 0x06d7
000006d2: JUMPI
000006d3: PUSH1 0x00
000006d5: DUP1
000006d6: REVERT
000006d7: JUMPDEST
000006d8: POP
000006d9: PUSH2 0x0396
000006dc: PUSH2 0x06e6
000006df: CALLDATASIZE
000006e0: PUSH1 0x04
000006e2: PUSH2 0x27ba
000006e5: JUMP
000006e6: JUMPDEST
000006e7: PUSH2 0xffff
000006ea: AND
000006eb: PUSH1 0x00
000006ed: SWAP1
000006ee: DUP2
000006ef: MSTORE
000006f0: PUSH1 0x0e
000006f2: PUSH1 0x20
000006f4: MSTORE
000006f5: PUSH1 0x40
000006f7: SWAP1
000006f8: KECCAK256
000006f9: SLOAD
000006fa: PUSH4 0xffffffff
000006ff: AND
00000700: SWAP1
00000701: JUMP
00000702: JUMPDEST
00000703: CALLVALUE
00000704: DUP1
00000705: ISZERO
00000706: PUSH2 0x070e
00000709: JUMPI
0000070a: PUSH1 0x00
0000070c: DUP1
0000070d: REVERT
0000070e: JUMPDEST
0000070f: POP
00000710: PUSH2 0x0396
00000713: PUSH2 0x071d
00000716: CALLDATASIZE
00000717: PUSH1 0x04
00000719: PUSH2 0x274c
0000071c: JUMP
0000071d: JUMPDEST
0000071e: PUSH2 0x1247
00000721: JUMP
00000722: JUMPDEST
00000723: CALLVALUE
00000724: DUP1
00000725: ISZERO
00000726: PUSH2 0x072e
00000729: JUMPI
0000072a: PUSH1 0x00
0000072c: DUP1
0000072d: REVERT
0000072e: JUMPDEST
0000072f: POP
00000730: PUSH1 0x02
00000732: SLOAD
00000733: PUSH1 0x01
00000735: PUSH1 0x01
00000737: PUSH1 0xa0
00000739: SHL
0000073a: SUB
0000073b: AND
0000073c: PUSH2 0x033b
0000073f: JUMP
00000740: JUMPDEST
00000741: CALLVALUE
00000742: DUP1
00000743: ISZERO
00000744: PUSH2 0x074c
00000747: JUMPI
00000748: PUSH1 0x00
0000074a: DUP1
0000074b: REVERT
0000074c: JUMPDEST
0000074d: POP
0000074e: PUSH2 0x02ae
00000751: PUSH2 0x075b
00000754: CALLDATASIZE
00000755: PUSH1 0x04
00000757: PUSH2 0x274c
0000075a: JUMP
0000075b: JUMPDEST
0000075c: PUSH2 0x12a7
0000075f: JUMP
00000760: JUMPDEST
00000761: CALLVALUE
00000762: DUP1
00000763: ISZERO
00000764: PUSH2 0x076c
00000767: JUMPI
00000768: PUSH1 0x00
0000076a: DUP1
0000076b: REVERT
0000076c: JUMPDEST
0000076d: POP
0000076e: PUSH2 0x0396
00000771: PUSH2 0x077b
00000774: CALLDATASIZE
00000775: PUSH1 0x04
00000777: PUSH2 0x274c
0000077a: JUMP
0000077b: JUMPDEST
0000077c: PUSH1 0x01
0000077e: PUSH1 0x01
00000780: PUSH1 0xa0
00000782: SHL
00000783: SUB
00000784: AND
00000785: PUSH1 0x00
00000787: SWAP1
00000788: DUP2
00000789: MSTORE
0000078a: PUSH1 0x15
0000078c: PUSH1 0x20
0000078e: MSTORE
0000078f: PUSH1 0x40
00000791: SWAP1
00000792: KECCAK256
00000793: SLOAD
00000794: SWAP1
00000795: JUMP
00000796: JUMPDEST
00000797: CALLVALUE
00000798: DUP1
00000799: ISZERO
0000079a: PUSH2 0x07a2
0000079d: JUMPI
0000079e: PUSH1 0x00
000007a0: DUP1
000007a1: REVERT
000007a2: JUMPDEST
000007a3: POP
000007a4: PUSH1 0x05
000007a6: SLOAD
000007a7: PUSH2 0x0396
000007aa: JUMP
000007ab: JUMPDEST
000007ac: PUSH2 0x07b3
000007af: PUSH2 0x1318
000007b2: JUMP
000007b3: JUMPDEST
000007b4: PUSH2 0x07bb
000007b7: PUSH2 0x143b
000007ba: JUMP
000007bb: JUMPDEST
000007bc: CALLER
000007bd: PUSH1 0x00
000007bf: SWAP1
000007c0: DUP2
000007c1: MSTORE
000007c2: PUSH1 0x12
000007c4: PUSH1 0x20
000007c6: MSTORE
000007c7: PUSH1 0x40
000007c9: DUP2
000007ca: KECCAK256
000007cb: DUP1
000007cc: SLOAD
000007cd: DUP3
000007ce: SWAP1
000007cf: PUSH2 0x07d7
000007d2: SWAP1
000007d3: PUSH2 0x27d5
000007d6: JUMP
000007d7: JUMPDEST
000007d8: SWAP2
000007d9: DUP3
000007da: SWAP1
000007db: SSTORE
000007dc: POP
000007dd: SWAP1
000007de: POP
000007df: PUSH1 0x58
000007e1: DUP3
000007e2: LT
000007e3: DUP1
000007e4: ISZERO
000007e5: SWAP1
000007e6: PUSH2 0x07f1
000007e9: JUMPI
000007ea: POP
000007eb: PUSH2 0x0b48
000007ee: DUP3
000007ef: GT
000007f0: ISZERO
000007f1: JUMPDEST
000007f2: PUSH2 0x0856
000007f5: JUMPI
000007f6: PUSH1 0x40
000007f8: MLOAD
000007f9: PUSH3 0x461bcd
000007fd: PUSH1 0xe5
000007ff: SHL
00000800: DUP2
00000801: MSTORE
00000802: PUSH1 0x20
00000804: PUSH1 0x04
00000806: DUP3
00000807: ADD
00000808: MSTORE
00000809: PUSH1 0x2b
0000080b: PUSH1 0x24
0000080d: DUP3
0000080e: ADD
0000080f: MSTORE
00000810: PUSH32 0x626c617a655374616b696e673a626c617a65207374616b65206475726174696f
00000831: PUSH1 0x44
00000833: DUP3
00000834: ADD
00000835: MSTORE
00000836: PUSH11 0x1b881b9bdd081d985b1a59
00000842: PUSH1 0xaa
00000844: SHL
00000845: PUSH1 0x64
00000847: DUP3
00000848: ADD
00000849: MSTORE
0000084a: PUSH1 0x84
0000084c: ADD
0000084d: JUMPDEST
0000084e: PUSH1 0x40
00000850: MLOAD
00000851: DUP1
00000852: SWAP2
00000853: SUB
00000854: SWAP1
00000855: REVERT
00000856: JUMPDEST
00000857: PUSH1 0x00
00000859: PUSH2 0x0862
0000085c: DUP5
0000085d: DUP5
0000085e: PUSH2 0x0ef7
00000861: JUMP
00000862: JUMPDEST
00000863: POP
00000864: SWAP1
00000865: POP
00000866: PUSH1 0x00
00000868: PUSH1 0x06
0000086a: PUSH1 0x00
0000086c: DUP2
0000086d: SLOAD
0000086e: PUSH2 0x0876
00000871: SWAP1
00000872: PUSH2 0x27d5
00000875: JUMP
00000876: JUMPDEST
00000877: SWAP2
00000878: DUP3
00000879: SWAP1
0000087a: SSTORE
0000087b: POP
0000087c: CALLER
0000087d: PUSH1 0x00
0000087f: SWAP1
00000880: DUP2
00000881: MSTORE
00000882: PUSH1 0x13
00000884: PUSH1 0x20
00000886: SWAP1
00000887: DUP2
00000888: MSTORE
00000889: PUSH1 0x40
0000088b: DUP1
0000088c: DUP4
0000088d: KECCAK256
0000088e: DUP8
0000088f: DUP5
00000890: MSTORE
00000891: SWAP1
00000892: SWAP2
00000893: MSTORE
00000894: DUP2
00000895: KECCAK256
00000896: DUP3
00000897: SWAP1
00000898: SSTORE
00000899: SWAP1
0000089a: SWAP2
0000089b: POP
0000089c: PUSH2 0x08a8
0000089f: PUSH3 0x015180
000008a3: DUP7
000008a4: PUSH2 0x27ee
000008a7: JUMP
000008a8: JUMPDEST
000008a9: PUSH2 0x08b2
000008ac: SWAP1
000008ad: TIMESTAMP
000008ae: PUSH2 0x2554
000008b1: JUMP
000008b2: JUMPDEST
000008b3: SWAP1
000008b4: POP
000008b5: PUSH1 0x00
000008b7: PUSH1 0x40
000008b9: MLOAD
000008ba: DUP1
000008bb: PUSH1 0xc0
000008bd: ADD
000008be: PUSH1 0x40
000008c0: MSTORE
000008c1: DUP1
000008c2: DUP9
000008c3: DUP2
000008c4: MSTORE
000008c5: PUSH1 0x20
000008c7: ADD
000008c8: DUP6
000008c9: DUP2
000008ca: MSTORE
000008cb: PUSH1 0x20
000008cd: ADD
000008ce: DUP8
000008cf: PUSH2 0xffff
000008d2: AND
000008d3: DUP2
000008d4: MSTORE
000008d5: PUSH1 0x20
000008d7: ADD
000008d8: TIMESTAMP
000008d9: PUSH4 0xffffffff
000008de: AND
000008df: DUP2
000008e0: MSTORE
000008e1: PUSH1 0x20
000008e3: ADD
000008e4: DUP4
000008e5: PUSH4 0xffffffff
000008ea: AND
000008eb: DUP2
000008ec: MSTORE
000008ed: PUSH1 0x20
000008ef: ADD
000008f0: PUSH1 0x00
000008f2: PUSH1 0x01
000008f4: DUP2
000008f5: GT
000008f6: ISZERO
000008f7: PUSH2 0x0902
000008fa: JUMPI
000008fb: PUSH2 0x0902
000008fe: PUSH2 0x25cf
00000901: JUMP
00000902: JUMPDEST
00000903: SWAP1
00000904: MSTORE
00000905: PUSH1 0x00
00000907: DUP5
00000908: DUP2
00000909: MSTORE
0000090a: PUSH1 0x14
0000090c: PUSH1 0x20
0000090e: SWAP1
0000090f: DUP2
00000910: MSTORE
00000911: PUSH1 0x40
00000913: SWAP2
00000914: DUP3
00000915: SWAP1
00000916: KECCAK256
00000917: DUP4
00000918: MLOAD
00000919: DUP2
0000091a: SSTORE
0000091b: SWAP1
0000091c: DUP4
0000091d: ADD
0000091e: MLOAD
0000091f: PUSH1 0x01
00000921: DUP1
00000922: DUP4
00000923: ADD
00000924: SWAP2
00000925: SWAP1
00000926: SWAP2
00000927: SSTORE
00000928: SWAP2
00000929: DUP4
0000092a: ADD
0000092b: MLOAD
0000092c: PUSH1 0x02
0000092e: DUP3
0000092f: ADD
00000930: DUP1
00000931: SLOAD
00000932: PUSH1 0x60
00000934: DUP7
00000935: ADD
00000936: MLOAD
00000937: PUSH1 0x80
00000939: DUP8
0000093a: ADD
0000093b: MLOAD
0000093c: PUSH4 0xffffffff
00000941: SWAP1
00000942: DUP2
00000943: AND
00000944: PUSH1 0x01
00000946: PUSH1 0x30
00000948: SHL
00000949: MUL
0000094a: PUSH10 0xffffffff000000000000
00000955: NOT
00000956: SWAP2
00000957: SWAP1
00000958: SWAP3
00000959: AND
0000095a: PUSH3 0x010000
0000095e: MUL
0000095f: PUSH6 0xffffffffffff
00000966: NOT
00000967: SWAP1
00000968: SWAP4
00000969: AND
0000096a: PUSH2 0xffff
0000096d: SWAP1
0000096e: SWAP6
0000096f: AND
00000970: SWAP5
00000971: SWAP1
00000972: SWAP5
00000973: OR
00000974: SWAP2
00000975: SWAP1
00000976: SWAP2
00000977: OR
00000978: SWAP3
00000979: DUP4
0000097a: AND
0000097b: DUP2
0000097c: OR
0000097d: DUP3
0000097e: SSTORE
0000097f: PUSH1 0xa0
00000981: DUP7
00000982: ADD
00000983: MLOAD
00000984: SWAP6
00000985: SWAP7
00000986: POP
00000987: DUP7
00000988: SWAP6
00000989: SWAP4
0000098a: SWAP5
0000098b: SWAP2
0000098c: SWAP3
0000098d: PUSH1 0xff
0000098f: PUSH1 0x50
00000991: SHL
00000992: NOT
00000993: SWAP1
00000994: SWAP2
00000995: AND
00000996: PUSH11 0xffffffffff000000000000
000009a2: NOT
000009a3: SWAP1
000009a4: SWAP2
000009a5: AND
000009a6: OR
000009a7: SWAP1
000009a8: PUSH1 0x01
000009aa: PUSH1 0x50
000009ac: SHL
000009ad: SWAP1
000009ae: DUP5
000009af: SWAP1
000009b0: DUP2
000009b1: GT
000009b2: ISZERO
000009b3: PUSH2 0x09be
000009b6: JUMPI
000009b7: PUSH2 0x09be
000009ba: PUSH2 0x25cf
000009bd: JUMP
000009be: JUMPDEST
000009bf: MUL
000009c0: OR
000009c1: SWAP1
000009c2: SSTORE
000009c3: POP
000009c4: SWAP1
000009c5: POP
000009c6: POP
000009c7: PUSH1 0x00
000009c9: PUSH2 0x09db
000009cc: PUSH2 0x09d2
000009cf: CALLER
000009d0: SWAP1
000009d1: JUMP
000009d2: JUMPDEST
000009d3: DUP7
000009d4: DUP11
000009d5: PUSH1 0x00
000009d7: PUSH2 0x1465
000009da: JUMP
000009db: JUMPDEST
000009dc: SWAP1
000009dd: POP
000009de: DUP1
000009df: PUSH1 0xff
000009e1: AND
000009e2: PUSH1 0x01
000009e4: SUB
000009e5: PUSH2 0x09f1
000009e8: JUMPI
000009e9: PUSH2 0x09f1
000009ec: CALLER
000009ed: PUSH2 0x1649
000009f0: JUMP
000009f1: JUMPDEST
000009f2: PUSH2 0x0b47
000009f5: NOT
000009f6: DUP8
000009f7: ADD
000009f8: PUSH2 0x0a05
000009fb: JUMPI
000009fc: PUSH2 0x0a05
000009ff: CALLER
00000a00: DUP10
00000a01: PUSH2 0x17db
00000a04: JUMP
00000a05: JUMPDEST
00000a06: PUSH2 0x0a1d
00000a09: CALLER
00000a0a: PUSH1 0x03
00000a0c: SLOAD
00000a0d: PUSH1 0x01
00000a0f: PUSH1 0x01
00000a11: PUSH1 0xa0
00000a13: SHL
00000a14: SUB
00000a15: AND
00000a16: SWAP1
00000a17: ADDRESS
00000a18: DUP12
00000a19: PUSH2 0x18c5
00000a1c: JUMP
00000a1d: JUMPDEST
00000a1e: PUSH1 0x40
00000a20: DUP1
00000a21: MLOAD
00000a22: DUP9
00000a23: DUP2
00000a24: MSTORE
00000a25: PUSH1 0x20
00000a27: DUP2
00000a28: ADD
00000a29: DUP11
00000a2a: SWAP1
00000a2b: MSTORE
00000a2c: DUP6
00000a2d: SWAP2
00000a2e: CALLER
00000a2f: SWAP2
00000a30: PUSH32 0x91e6a00503577c865efb830697017859d45cac59ab84291faa9141b55bc5f23c
00000a51: SWAP2
00000a52: ADD
00000a53: PUSH1 0x40
00000a55: MLOAD
00000a56: DUP1
00000a57: SWAP2
00000a58: SUB
00000a59: SWAP1
00000a5a: LOG3
00000a5b: POP
00000a5c: POP
00000a5d: POP
00000a5e: POP
00000a5f: POP
00000a60: POP
00000a61: PUSH2 0x0a6a
00000a64: PUSH1 0x01
00000a66: PUSH1 0x00
00000a68: SSTORE
00000a69: JUMP
00000a6a: JUMPDEST
00000a6b: POP
00000a6c: POP
00000a6d: JUMP
00000a6e: JUMPDEST
00000a6f: PUSH2 0x0a76
00000a72: PUSH2 0x24e7
00000a75: JUMP
00000a76: JUMPDEST
00000a77: PUSH1 0x01
00000a79: PUSH1 0x01
00000a7b: PUSH1 0xa0
00000a7d: SHL
00000a7e: SUB
00000a7f: DUP4
00000a80: AND
00000a81: PUSH1 0x00
00000a83: SWAP1
00000a84: DUP2
00000a85: MSTORE
00000a86: PUSH1 0x13
00000a88: PUSH1 0x20
00000a8a: SWAP1
00000a8b: DUP2
00000a8c: MSTORE
00000a8d: PUSH1 0x40
00000a8f: DUP1
00000a90: DUP4
00000a91: KECCAK256
00000a92: DUP6
00000a93: DUP5
00000a94: MSTORE
00000a95: DUP3
00000a96: MSTORE
00000a97: DUP1
00000a98: DUP4
00000a99: KECCAK256
00000a9a: SLOAD
00000a9b: DUP4
00000a9c: MSTORE
00000a9d: PUSH1 0x14
00000a9f: DUP3
00000aa0: MSTORE
00000aa1: SWAP2
00000aa2: DUP3
00000aa3: SWAP1
00000aa4: KECCAK256
00000aa5: DUP3
00000aa6: MLOAD
00000aa7: PUSH1 0xc0
00000aa9: DUP2
00000aaa: ADD
00000aab: DUP5
00000aac: MSTORE
00000aad: DUP2
00000aae: SLOAD
00000aaf: DUP2
00000ab0: MSTORE
00000ab1: PUSH1 0x01
00000ab3: DUP1
00000ab4: DUP4
00000ab5: ADD
00000ab6: SLOAD
00000ab7: SWAP4
00000ab8: DUP3
00000ab9: ADD
00000aba: SWAP4
00000abb: SWAP1
00000abc: SWAP4
00000abd: MSTORE
00000abe: PUSH1 0x02
00000ac0: DUP3
00000ac1: ADD
00000ac2: SLOAD
00000ac3: PUSH2 0xffff
00000ac6: DUP2
00000ac7: AND
00000ac8: SWAP5
00000ac9: DUP3
00000aca: ADD
00000acb: SWAP5
00000acc: SWAP1
00000acd: SWAP5
00000ace: MSTORE
00000acf: PUSH4 0xffffffff
00000ad4: PUSH3 0x010000
00000ad8: DUP6
00000ad9: DIV
00000ada: DUP2
00000adb: AND
00000adc: PUSH1 0x60
00000ade: DUP4
00000adf: ADD
00000ae0: MSTORE
00000ae1: PUSH1 0x01
00000ae3: PUSH1 0x30
00000ae5: SHL
00000ae6: DUP6
00000ae7: DIV
00000ae8: AND
00000ae9: PUSH1 0x80
00000aeb: DUP3
00000aec: ADD
00000aed: MSTORE
00000aee: SWAP3
00000aef: SWAP1
00000af0: SWAP2
00000af1: PUSH1 0xa0
00000af3: DUP5
00000af4: ADD
00000af5: SWAP2
00000af6: PUSH1 0xff
00000af8: PUSH1 0x01
00000afa: PUSH1 0x50
00000afc: SHL
00000afd: SWAP1
00000afe: SWAP2
00000aff: DIV
00000b00: AND
00000b01: SWAP1
00000b02: DUP2
00000b03: GT
00000b04: ISZERO
00000b05: PUSH2 0x0b10
00000b08: JUMPI
00000b09: PUSH2 0x0b10
00000b0c: PUSH2 0x25cf
00000b0f: JUMP
00000b10: JUMPDEST
00000b11: PUSH1 0x01
00000b13: DUP2
00000b14: GT
00000b15: ISZERO
00000b16: PUSH2 0x0b21
00000b19: JUMPI
00000b1a: PUSH2 0x0b21
00000b1d: PUSH2 0x25cf
00000b20: JUMP
00000b21: JUMPDEST
00000b22: SWAP1
00000b23: MSTORE
00000b24: POP
00000b25: SWAP1
00000b26: POP
00000b27: JUMPDEST
00000b28: SWAP3
00000b29: SWAP2
00000b2a: POP
00000b2b: POP
00000b2c: JUMP
00000b2d: JUMPDEST
00000b2e: PUSH1 0x01
00000b30: PUSH1 0x01
00000b32: PUSH1 0xa0
00000b34: SHL
00000b35: SUB
00000b36: SWAP2
00000b37: SWAP1
00000b38: SWAP2
00000b39: AND
00000b3a: PUSH1 0x00
00000b3c: SWAP1
00000b3d: DUP2
00000b3e: MSTORE
00000b3f: PUSH1 0x11
00000b41: PUSH1 0x20
00000b43: SWAP1
00000b44: DUP2
00000b45: MSTORE
00000b46: PUSH1 0x40
00000b48: DUP1
00000b49: DUP4
00000b4a: KECCAK256
00000b4b: PUSH2 0xffff
00000b4e: SWAP5
00000b4f: SWAP1
00000b50: SWAP5
00000b51: AND
00000b52: DUP4
00000b53: MSTORE
00000b54: SWAP3
00000b55: SWAP1
00000b56: MSTORE
00000b57: KECCAK256
00000b58: SLOAD
00000b59: PUSH4 0xffffffff
00000b5e: DUP2
00000b5f: AND
00000b60: SWAP2
00000b61: PUSH5 0x0100000000
00000b67: SWAP1
00000b68: SWAP2
00000b69: DIV
00000b6a: PUSH1 0x01
00000b6c: PUSH1 0x01
00000b6e: PUSH1 0x60
00000b70: SHL
00000b71: SUB
00000b72: AND
00000b73: SWAP1
00000b74: JUMP
00000b75: JUMPDEST
00000b76: PUSH2 0x0b7d
00000b79: PUSH2 0x1318
00000b7c: JUMP
00000b7d: JUMPDEST
00000b7e: PUSH2 0x0b85
00000b81: PUSH2 0x143b
00000b84: JUMP
00000b85: JUMPDEST
00000b86: PUSH1 0x00
00000b88: PUSH2 0x0b91
00000b8b: DUP4
00000b8c: DUP4
00000b8d: PUSH2 0x1932
00000b90: JUMP
00000b91: JUMPDEST
00000b92: PUSH1 0x03
00000b94: SLOAD
00000b95: SWAP1
00000b96: SWAP2
00000b97: POP
00000b98: PUSH2 0x0bab
00000b9b: SWAP1
00000b9c: PUSH1 0x01
00000b9e: PUSH1 0x01
00000ba0: PUSH1 0xa0
00000ba2: SHL
00000ba3: SUB
00000ba4: AND
00000ba5: DUP5
00000ba6: DUP4
00000ba7: PUSH2 0x1bbc
00000baa: JUMP
00000bab: JUMPDEST
00000bac: POP
00000bad: PUSH2 0x0a6a
00000bb0: PUSH1 0x01
00000bb2: PUSH1 0x00
00000bb4: SSTORE
00000bb5: JUMP
00000bb6: JUMPDEST
00000bb7: PUSH1 0x00
00000bb9: DUP1
00000bba: PUSH1 0x00
00000bbc: PUSH1 0x06
00000bbe: SLOAD
00000bbf: PUSH1 0x0a
00000bc1: SLOAD
00000bc2: PUSH1 0x0a
00000bc4: SLOAD
00000bc5: PUSH1 0x06
00000bc7: SLOAD
00000bc8: PUSH2 0x0bd1
00000bcb: SWAP2
00000bcc: SWAP1
00000bcd: PUSH2 0x2805
00000bd0: JUMP
00000bd1: JUMPDEST
00000bd2: SWAP3
00000bd3: POP
00000bd4: SWAP3
00000bd5: POP
00000bd6: SWAP3
00000bd7: POP
00000bd8: SWAP1
00000bd9: SWAP2
00000bda: SWAP3
00000bdb: JUMP
00000bdc: JUMPDEST
00000bdd: PUSH1 0x00
00000bdf: DUP1
00000be0: PUSH1 0x00
00000be2: PUSH1 0x07
00000be4: SLOAD
00000be5: PUSH1 0x08
00000be7: SLOAD
00000be8: PUSH1 0x08
00000bea: SLOAD
00000beb: PUSH1 0x07
00000bed: SLOAD
00000bee: PUSH2 0x0bd1
00000bf1: SWAP2
00000bf2: SWAP1
00000bf3: PUSH2 0x2805
00000bf6: JUMP
00000bf7: JUMPDEST
00000bf8: PUSH1 0x01
00000bfa: PUSH1 0x01
00000bfc: PUSH1 0xa0
00000bfe: SHL
00000bff: SUB
00000c00: DUP4
00000c01: AND
00000c02: PUSH1 0x00
00000c04: SWAP1
00000c05: DUP2
00000c06: MSTORE
00000c07: PUSH1 0x12
00000c09: PUSH1 0x20
00000c0b: MSTORE
00000c0c: PUSH1 0x40
00000c0e: DUP2
00000c0f: KECCAK256
00000c10: SLOAD
00000c11: PUSH1 0x60
00000c13: SWAP2
00000c14: SWAP1
00000c15: DUP1
00000c16: DUP1
00000c17: DUP7
00000c18: LT
00000c19: PUSH2 0x0c5b
00000c1c: JUMPI
00000c1d: PUSH1 0x40
00000c1f: DUP1
00000c20: MLOAD
00000c21: PUSH1 0x00
00000c23: DUP1
00000c24: DUP3
00000c25: MSTORE
00000c26: PUSH1 0x20
00000c28: DUP3
00000c29: ADD
00000c2a: SWAP1
00000c2b: SWAP3
00000c2c: MSTORE
00000c2d: SWAP1
00000c2e: PUSH2 0x0c4d
00000c31: JUMP
00000c32: JUMPDEST
00000c33: PUSH2 0x0c3a
00000c36: PUSH2 0x251d
00000c39: JUMP
00000c3a: JUMPDEST
00000c3b: DUP2
00000c3c: MSTORE
00000c3d: PUSH1 0x20
00000c3f: ADD
00000c40: SWAP1
00000c41: PUSH1 0x01
00000c43: SWAP1
00000c44: SUB
00000c45: SWAP1
00000c46: DUP2
00000c47: PUSH2 0x0c32
00000c4a: JUMPI
00000c4b: SWAP1
00000c4c: POP
00000c4d: JUMPDEST
00000c4e: POP
00000c4f: PUSH1 0x00
00000c51: SWAP4
00000c52: POP
00000c53: SWAP4
00000c54: POP
00000c55: POP
00000c56: POP
00000c57: PUSH2 0x0d82
00000c5a: JUMP
00000c5b: JUMPDEST
00000c5c: PUSH1 0x00
00000c5e: PUSH2 0x0c67
00000c61: DUP7
00000c62: DUP9
00000c63: PUSH2 0x2554
00000c66: JUMP
00000c67: JUMPDEST
00000c68: SWAP1
00000c69: POP
00000c6a: DUP2
00000c6b: DUP2
00000c6c: GT
00000c6d: ISZERO
00000c6e: PUSH2 0x0c74
00000c71: JUMPI
00000c72: POP
00000c73: DUP1
00000c74: JUMPDEST
00000c75: PUSH2 0x0c7e
00000c78: DUP8
00000c79: DUP3
00000c7a: PUSH2 0x2805
00000c7d: JUMP
00000c7e: JUMPDEST
00000c7f: PUSH8 0xffffffffffffffff
00000c88: DUP2
00000c89: GT
00000c8a: ISZERO
00000c8b: PUSH2 0x0c96
00000c8e: JUMPI
00000c8f: PUSH2 0x0c96
00000c92: PUSH2 0x2818
00000c95: JUMP
00000c96: JUMPDEST
00000c97: PUSH1 0x40
00000c99: MLOAD
00000c9a: SWAP1
00000c9b: DUP1
00000c9c: DUP3
00000c9d: MSTORE
00000c9e: DUP1
00000c9f: PUSH1 0x20
00000ca1: MUL
00000ca2: PUSH1 0x20
00000ca4: ADD
00000ca5: DUP3
00000ca6: ADD
00000ca7: PUSH1 0x40
00000ca9: MSTORE
00000caa: DUP1
00000cab: ISZERO
00000cac: PUSH2 0x0ccf
00000caf: JUMPI
00000cb0: DUP2
00000cb1: PUSH1 0x20
00000cb3: ADD
00000cb4: JUMPDEST
00000cb5: PUSH2 0x0cbc
00000cb8: PUSH2 0x251d
00000cbb: JUMP
00000cbc: JUMPDEST
00000cbd: DUP2
00000cbe: MSTORE
00000cbf: PUSH1 0x20
00000cc1: ADD
00000cc2: SWAP1
00000cc3: PUSH1 0x01
00000cc5: SWAP1
00000cc6: SUB
00000cc7: SWAP1
00000cc8: DUP2
00000cc9: PUSH2 0x0cb4
00000ccc: JUMPI
00000ccd: SWAP1
00000cce: POP
00000ccf: JUMPDEST
00000cd0: POP
00000cd1: SWAP5
00000cd2: POP
00000cd3: PUSH1 0x00
00000cd5: JUMPDEST
00000cd6: DUP2
00000cd7: DUP9
00000cd8: LT
00000cd9: ISZERO
00000cda: PUSH2 0x0d7c
00000cdd: JUMPI
00000cde: PUSH1 0x40
00000ce0: MLOAD
00000ce1: DUP1
00000ce2: PUSH1 0x60
00000ce4: ADD
00000ce5: PUSH1 0x40
00000ce7: MSTORE
00000ce8: DUP1
00000ce9: DUP10
00000cea: PUSH1 0x01
00000cec: PUSH2 0x0cf5
00000cef: SWAP2
00000cf0: SWAP1
00000cf1: PUSH2 0x2554
00000cf4: JUMP
00000cf5: JUMPDEST
00000cf6: DUP2
00000cf7: MSTORE
00000cf8: PUSH1 0x01
00000cfa: PUSH1 0x01
00000cfc: PUSH1 0xa0
00000cfe: SHL
00000cff: SUB
00000d00: DUP12
00000d01: AND
00000d02: PUSH1 0x00
00000d04: SWAP1
00000d05: DUP2
00000d06: MSTORE
00000d07: PUSH1 0x13
00000d09: PUSH1 0x20
00000d0b: SWAP1
00000d0c: DUP2
00000d0d: MSTORE
00000d0e: PUSH1 0x40
00000d10: DUP3
00000d11: KECCAK256
00000d12: SWAP3
00000d13: ADD
00000d14: SWAP2
00000d15: SWAP1
00000d16: PUSH2 0x0d20
00000d19: DUP13
00000d1a: PUSH1 0x01
00000d1c: PUSH2 0x2554
00000d1f: JUMP
00000d20: JUMPDEST
00000d21: DUP2
00000d22: MSTORE
00000d23: PUSH1 0x20
00000d25: ADD
00000d26: SWAP1
00000d27: DUP2
00000d28: MSTORE
00000d29: PUSH1 0x20
00000d2b: ADD
00000d2c: PUSH1 0x00
00000d2e: KECCAK256
00000d2f: SLOAD
00000d30: DUP2
00000d31: MSTORE
00000d32: PUSH1 0x20
00000d34: ADD
00000d35: PUSH2 0x0d45
00000d38: DUP12
00000d39: DUP12
00000d3a: PUSH1 0x01
00000d3c: PUSH2 0x02cb
00000d3f: SWAP2
00000d40: SWAP1
00000d41: PUSH2 0x2554
00000d44: JUMP
00000d45: JUMPDEST
00000d46: DUP2
00000d47: MSTORE
00000d48: POP
00000d49: DUP7
00000d4a: DUP3
00000d4b: DUP2
00000d4c: MLOAD
00000d4d: DUP2
00000d4e: LT
00000d4f: PUSH2 0x0d5a
00000d52: JUMPI
00000d53: PUSH2 0x0d5a
00000d56: PUSH2 0x282e
00000d59: JUMP
00000d5a: JUMPDEST
00000d5b: PUSH1 0x20
00000d5d: MUL
00000d5e: PUSH1 0x20
00000d60: ADD
00000d61: ADD
00000d62: DUP2
00000d63: SWAP1
00000d64: MSTORE
00000d65: POP
00000d66: DUP1
00000d67: PUSH2 0x0d6f
00000d6a: SWAP1
00000d6b: PUSH2 0x27d5
00000d6e: JUMP
00000d6f: JUMPDEST
00000d70: SWAP1
00000d71: POP
00000d72: DUP8
00000d73: PUSH1 0x01
00000d75: ADD
00000d76: SWAP8
00000d77: POP
00000d78: PUSH2 0x0cd5
00000d7b: JUMP
00000d7c: JUMPDEST
00000d7d: POP
00000d7e: SWAP3
00000d7f: POP
00000d80: POP
00000d81: POP
00000d82: JUMPDEST
00000d83: SWAP4
00000d84: POP
00000d85: SWAP4
00000d86: SWAP2
00000d87: POP
00000d88: POP
00000d89: JUMP
00000d8a: JUMPDEST
00000d8b: PUSH2 0x0d92
00000d8e: PUSH2 0x1318
00000d91: JUMP
00000d92: JUMPDEST
00000d93: PUSH2 0x0d9a
00000d96: PUSH2 0x143b
00000d99: JUMP
00000d9a: JUMPDEST
00000d9b: PUSH1 0x00
00000d9d: PUSH2 0x0da6
00000da0: PUSH1 0x08
00000da2: PUSH2 0x1bf2
00000da5: JUMP
00000da6: JUMPDEST
00000da7: SWAP1
00000da8: POP
00000da9: PUSH2 0x0db2
00000dac: PUSH1 0x58
00000dae: PUSH2 0x1bf2
00000db1: JUMP
00000db2: JUMPDEST
00000db3: PUSH2 0x0dbc
00000db6: SWAP1
00000db7: DUP3
00000db8: PUSH2 0x2554
00000dbb: JUMP
00000dbc: JUMPDEST
00000dbd: SWAP1
00000dbe: POP
00000dbf: PUSH2 0x0dc9
00000dc2: PUSH2 0x0120
00000dc5: PUSH2 0x1bf2
00000dc8: JUMP
00000dc9: JUMPDEST
00000dca: PUSH2 0x0dd3
00000dcd: SWAP1
00000dce: DUP3
00000dcf: PUSH2 0x2554
00000dd2: JUMP
00000dd3: JUMPDEST
00000dd4: SWAP1
00000dd5: POP
00000dd6: DUP1
00000dd7: ISZERO
00000dd8: PUSH2 0x0de6
00000ddb: JUMPI
00000ddc: PUSH2 0x0de6
00000ddf: CALLER
00000de0: JUMPDEST
00000de1: DUP3
00000de2: PUSH2 0x1c22
00000de5: JUMP
00000de6: JUMPDEST
00000de7: PUSH1 0x40
00000de9: MLOAD
00000dea: DUP2
00000deb: SWAP1
00000dec: CALLER
00000ded: SWAP1
00000dee: PUSH32 0x2871b64e3818cfce24806c82238518bcaa75f39220abe2118583210f29c7af60
00000e0f: SWAP1
00000e10: PUSH1 0x00
00000e12: SWAP1
00000e13: LOG3
00000e14: POP
00000e15: PUSH2 0x0e1e
00000e18: PUSH1 0x01
00000e1a: PUSH1 0x00
00000e1c: SSTORE
00000e1d: JUMP
00000e1e: JUMPDEST
00000e1f: JUMP
00000e20: JUMPDEST
00000e21: PUSH2 0x0e28
00000e24: PUSH2 0x1cc5
00000e27: JUMP
00000e28: JUMPDEST
00000e29: PUSH2 0x0e1e
00000e2c: PUSH1 0x00
00000e2e: PUSH2 0x1cf2
00000e31: JUMP
00000e32: JUMPDEST
00000e33: PUSH1 0x02
00000e35: SLOAD
00000e36: CALLER
00000e37: SWAP1
00000e38: PUSH1 0x01
00000e3a: PUSH1 0x01
00000e3c: PUSH1 0xa0
00000e3e: SHL
00000e3f: SUB
00000e40: AND
00000e41: DUP2
00000e42: EQ
00000e43: PUSH2 0x0e6a
00000e46: JUMPI
00000e47: PUSH1 0x40
00000e49: MLOAD
00000e4a: PUSH4 0x118cdaa7
00000e4f: PUSH1 0xe0
00000e51: SHL
00000e52: DUP2
00000e53: MSTORE
00000e54: PUSH1 0x01
00000e56: PUSH1 0x01
00000e58: PUSH1 0xa0
00000e5a: SHL
00000e5b: SUB
00000e5c: DUP3
00000e5d: AND
00000e5e: PUSH1 0x04
00000e60: DUP3
00000e61: ADD
00000e62: MSTORE
00000e63: PUSH1 0x24
00000e65: ADD
00000e66: PUSH2 0x084d
00000e69: JUMP
00000e6a: JUMPDEST
00000e6b: PUSH2 0x0e73
00000e6e: DUP2
00000e6f: PUSH2 0x1cf2
00000e72: JUMP
00000e73: JUMPDEST
00000e74: POP
00000e75: JUMP
00000e76: JUMPDEST
00000e77: PUSH2 0x0e7e
00000e7a: PUSH2 0x1318
00000e7d: JUMP
00000e7e: JUMPDEST
00000e7f: PUSH2 0x0e86
00000e82: PUSH2 0x143b
00000e85: JUMP
00000e86: JUMPDEST
00000e87: PUSH1 0x00
00000e89: DUP1
00000e8a: PUSH2 0x0e91
00000e8d: PUSH2 0x1d0b
00000e90: JUMP
00000e91: JUMPDEST
00000e92: PUSH1 0x04
00000e94: SLOAD
00000e95: SWAP2
00000e96: SWAP4
00000e97: POP
00000e98: SWAP2
00000e99: POP
00000e9a: PUSH1 0x01
00000e9c: PUSH1 0x01
00000e9e: PUSH1 0xa0
00000ea0: SHL
00000ea1: SUB
00000ea2: AND
00000ea3: PUSH2 0x0ebe
00000ea6: JUMPI
00000ea7: PUSH1 0x40
00000ea9: MLOAD
00000eaa: PUSH3 0x461bcd
00000eae: PUSH1 0xe5
00000eb0: SHL
00000eb1: DUP2
00000eb2: MSTORE
00000eb3: PUSH1 0x04
00000eb5: ADD
00000eb6: PUSH2 0x084d
00000eb9: SWAP1
00000eba: PUSH2 0x2844
00000ebd: JUMP
00000ebe: JUMPDEST
00000ebf: PUSH1 0x04
00000ec1: SLOAD
00000ec2: PUSH2 0x0ed4
00000ec5: SWAP1
00000ec6: PUSH1 0x01
00000ec8: PUSH1 0x01
00000eca: PUSH1 0xa0
00000ecc: SHL
00000ecd: SUB
00000ece: AND
00000ecf: DUP4
00000ed0: PUSH2 0x1c22
00000ed3: JUMP
00000ed4: JUMPDEST
00000ed5: DUP1
00000ed6: ISZERO
00000ed7: PUSH2 0x0ee3
00000eda: JUMPI
00000edb: PUSH2 0x0ee3
00000ede: CALLER
00000edf: PUSH2 0x0de0
00000ee2: JUMP
00000ee3: JUMPDEST
00000ee4: POP
00000ee5: POP
00000ee6: PUSH2 0x0e1e
00000ee9: PUSH1 0x01
00000eeb: PUSH1 0x00
00000eed: SSTORE
00000eee: JUMP
00000eef: JUMPDEST
00000ef0: PUSH2 0x0e1e
00000ef3: PUSH2 0x1318
00000ef6: JUMP
00000ef7: JUMPDEST
00000ef8: DUP2
00000ef9: PUSH1 0x00
00000efb: PUSH2 0x03cc
00000efe: PUSH8 0x0de0b6b3a7640000
00000f07: PUSH2 0x0f11
00000f0a: PUSH1 0x58
00000f0c: DUP7
00000f0d: PUSH2 0x2805
00000f10: JUMP
00000f11: JUMPDEST
00000f12: PUSH2 0x0f1b
00000f15: SWAP2
00000f16: SWAP1
00000f17: PUSH2 0x27ee
00000f1a: JUMP
00000f1b: JUMPDEST
00000f1c: PUSH2 0x0f25
00000f1f: SWAP2
00000f20: SWAP1
00000f21: PUSH2 0x28ae
00000f24: JUMP
00000f25: JUMPDEST
00000f26: SWAP1
00000f27: POP
00000f28: PUSH8 0x0de0b6b3a7640000
00000f31: PUSH2 0x0f3a
00000f34: DUP3
00000f35: DUP5
00000f36: PUSH2 0x27ee
00000f39: JUMP
00000f3a: JUMPDEST
00000f3b: PUSH2 0x0f44
00000f3e: SWAP2
00000f3f: SWAP1
00000f40: PUSH2 0x28ae
00000f43: JUMP
00000f44: JUMPDEST
00000f45: PUSH2 0x0f4e
00000f48: SWAP1
00000f49: DUP4
00000f4a: PUSH2 0x2554
00000f4d: JUMP
00000f4e: JUMPDEST
00000f4f: PUSH1 0x05
00000f51: SLOAD
00000f52: SWAP1
00000f53: SWAP3
00000f54: POP
00000f55: PUSH2 0x0f66
00000f58: PUSH8 0x0de0b6b3a7640000
00000f61: DUP5
00000f62: PUSH2 0x27ee
00000f65: JUMP
00000f66: JUMPDEST
00000f67: PUSH2 0x0f70
00000f6a: SWAP2
00000f6b: SWAP1
00000f6c: PUSH2 0x28ae
00000f6f: JUMP
00000f70: JUMPDEST
00000f71: SWAP2
00000f72: POP
00000f73: SWAP3
00000f74: POP
00000f75: SWAP3
00000f76: SWAP1
00000f77: POP
00000f78: JUMP
00000f79: JUMPDEST
00000f7a: PUSH2 0x0f81
00000f7d: PUSH2 0x1cc5
00000f80: JUMP
00000f81: JUMPDEST
00000f82: PUSH1 0x01
00000f84: PUSH1 0x01
00000f86: PUSH1 0xa0
00000f88: SHL
00000f89: SUB
00000f8a: DUP2
00000f8b: AND
00000f8c: PUSH2 0x0ff6
00000f8f: JUMPI
00000f90: PUSH1 0x40
00000f92: MLOAD
00000f93: PUSH3 0x461bcd
00000f97: PUSH1 0xe5
00000f99: SHL
00000f9a: DUP2
00000f9b: MSTORE
00000f9c: PUSH1 0x20
00000f9e: PUSH1 0x04
00000fa0: DUP3
00000fa1: ADD
00000fa2: MSTORE
00000fa3: PUSH1 0x36
00000fa5: PUSH1 0x24
00000fa7: DUP3
00000fa8: ADD
00000fa9: MSTORE
00000faa: PUSH32 0x626c617a655374616b696e673a6c61737420646973747269627574696f6e2061
00000fcb: PUSH1 0x44
00000fcd: DUP3
00000fce: ADD
00000fcf: MSTORE
00000fd0: PUSH22 0x6464726573732063616e206e6f74206265207a65726f
00000fe7: PUSH1 0x50
00000fe9: SHL
00000fea: PUSH1 0x64
00000fec: DUP3
00000fed: ADD
00000fee: MSTORE
00000fef: PUSH1 0x84
00000ff1: ADD
00000ff2: PUSH2 0x084d
00000ff5: JUMP
00000ff6: JUMPDEST
00000ff7: PUSH1 0x04
00000ff9: DUP1
00000ffa: SLOAD
00000ffb: PUSH1 0x01
00000ffd: PUSH1 0x01
00000fff: PUSH1 0xa0
00001001: SHL
00001002: SUB
00001003: NOT
00001004: AND
00001005: PUSH1 0x01
00001007: PUSH1 0x01
00001009: PUSH1 0xa0
0000100b: SHL
0000100c: SUB
0000100d: SWAP3
0000100e: SWAP1
0000100f: SWAP3
00001010: AND
00001011: SWAP2
00001012: SWAP1
00001013: SWAP2
00001014: OR
00001015: SWAP1
00001016: SSTORE
00001017: JUMP
00001018: JUMPDEST
00001019: PUSH2 0x1020
0000101c: PUSH2 0x1318
0000101f: JUMP
00001020: JUMPDEST
00001021: PUSH2 0x1028
00001024: PUSH2 0x143b
00001027: JUMP
00001028: JUMPDEST
00001029: PUSH1 0x00
0000102b: DUP1
0000102c: PUSH1 0x0b
0000102e: SLOAD
0000102f: PUSH1 0x00
00001031: EQ
00001032: PUSH2 0x1043
00001035: JUMPI
00001036: PUSH2 0x103d
00001039: PUSH2 0x1d0b
0000103c: JUMP
0000103d: JUMPDEST
0000103e: SWAP1
0000103f: SWAP3
00001040: POP
00001041: SWAP1
00001042: POP
00001043: JUMPDEST
00001044: PUSH1 0x00
00001046: PUSH1 0x08
00001048: SLOAD
00001049: PUSH1 0x07
0000104b: SLOAD
0000104c: PUSH2 0x1055
0000104f: SWAP2
00001050: SWAP1
00001051: PUSH2 0x2805
00001054: JUMP
00001055: JUMPDEST
00001056: SWAP1
00001057: POP
00001058: PUSH1 0x01
0000105a: DUP2
0000105b: GT
0000105c: PUSH2 0x10a7
0000105f: JUMPI
00001060: PUSH1 0x40
00001062: MLOAD
00001063: PUSH3 0x461bcd
00001067: PUSH1 0xe5
00001069: SHL
0000106a: DUP2
0000106b: MSTORE
0000106c: PUSH1 0x20
0000106e: PUSH1 0x04
00001070: DUP3
00001071: ADD
00001072: MSTORE
00001073: PUSH1 0x1d
00001075: PUSH1 0x24
00001077: DUP3
00001078: ADD
00001079: MSTORE
0000107a: PUSH32 0x626c617a655374616b696e673a6e6f2061637469766520736861726573000000
0000109b: PUSH1 0x44
0000109d: DUP3
0000109e: ADD
0000109f: MSTORE
000010a0: PUSH1 0x64
000010a2: ADD
000010a3: PUSH2 0x084d
000010a6: JUMP
000010a7: JUMPDEST
000010a8: PUSH1 0x04
000010aa: SLOAD
000010ab: PUSH1 0x01
000010ad: PUSH1 0xa0
000010af: SHL
000010b0: SWAP1
000010b1: DIV
000010b2: PUSH4 0xffffffff
000010b7: AND
000010b8: PUSH1 0x00
000010ba: DUP1
000010bb: PUSH2 0x10c6
000010be: PUSH1 0x08
000010c0: DUP5
000010c1: DUP7
000010c2: PUSH2 0x1e67
000010c5: JUMP
000010c6: JUMPDEST
000010c7: SWAP1
000010c8: POP
000010c9: PUSH1 0x01
000010cb: DUP2
000010cc: PUSH1 0x01
000010ce: DUP2
000010cf: GT
000010d0: ISZERO
000010d1: PUSH2 0x10dc
000010d4: JUMPI
000010d5: PUSH2 0x10dc
000010d8: PUSH2 0x25cf
000010db: JUMP
000010dc: JUMPDEST
000010dd: EQ
000010de: DUP1
000010df: ISZERO
000010e0: PUSH2 0x10fa
000010e3: JUMPI
000010e4: POP
000010e5: PUSH1 0x00
000010e7: DUP3
000010e8: PUSH1 0x01
000010ea: DUP2
000010eb: GT
000010ec: ISZERO
000010ed: PUSH2 0x10f8
000010f0: JUMPI
000010f1: PUSH2 0x10f8
000010f4: PUSH2 0x25cf
000010f7: JUMP
000010f8: JUMPDEST
000010f9: EQ
000010fa: JUMPDEST
000010fb: ISZERO
000010fc: PUSH2 0x1104
000010ff: JUMPI
00001100: PUSH1 0x01
00001102: SWAP2
00001103: POP
00001104: JUMPDEST
00001105: PUSH2 0x1110
00001108: PUSH1 0x58
0000110a: DUP5
0000110b: DUP7
0000110c: PUSH2 0x1e67
0000110f: JUMP
00001110: JUMPDEST
00001111: SWAP1
00001112: POP
00001113: PUSH1 0x01
00001115: DUP2
00001116: PUSH1 0x01
00001118: DUP2
00001119: GT
0000111a: ISZERO
0000111b: PUSH2 0x1126
0000111e: JUMPI
0000111f: PUSH2 0x1126
00001122: PUSH2 0x25cf
00001125: JUMP
00001126: JUMPDEST
00001127: EQ
00001128: DUP1
00001129: ISZERO
0000112a: PUSH2 0x1144
0000112d: JUMPI
0000112e: POP
0000112f: PUSH1 0x00
00001131: DUP3
00001132: PUSH1 0x01
00001134: DUP2
00001135: GT
00001136: ISZERO
00001137: PUSH2 0x1142
0000113a: JUMPI
0000113b: PUSH2 0x1142
0000113e: PUSH2 0x25cf
00001141: JUMP
00001142: JUMPDEST
00001143: EQ
00001144: JUMPDEST
00001145: ISZERO
00001146: PUSH2 0x114e
00001149: JUMPI
0000114a: PUSH1 0x01
0000114c: SWAP2
0000114d: POP
0000114e: JUMPDEST
0000114f: PUSH2 0x115b
00001152: PUSH2 0x0120
00001155: DUP5
00001156: DUP7
00001157: PUSH2 0x1e67
0000115a: JUMP
0000115b: JUMPDEST
0000115c: SWAP1
0000115d: POP
0000115e: PUSH1 0x01
00001160: DUP2
00001161: PUSH1 0x01
00001163: DUP2
00001164: GT
00001165: ISZERO
00001166: PUSH2 0x1171
00001169: JUMPI
0000116a: PUSH2 0x1171
0000116d: PUSH2 0x25cf
00001170: JUMP
00001171: JUMPDEST
00001172: EQ
00001173: DUP1
00001174: ISZERO
00001175: PUSH2 0x118f
00001178: JUMPI
00001179: POP
0000117a: PUSH1 0x00
0000117c: DUP3
0000117d: PUSH1 0x01
0000117f: DUP2
00001180: GT
00001181: ISZERO
00001182: PUSH2 0x118d
00001185: JUMPI
00001186: PUSH2 0x118d
00001189: PUSH2 0x25cf
0000118c: JUMP
0000118d: JUMPDEST
0000118e: EQ
0000118f: JUMPDEST
00001190: ISZERO
00001191: PUSH2 0x1199
00001194: JUMPI
00001195: PUSH1 0x01
00001197: SWAP2
00001198: POP
00001199: JUMPDEST
0000119a: PUSH1 0x01
0000119c: DUP3
0000119d: PUSH1 0x01
0000119f: DUP2
000011a0: GT
000011a1: ISZERO
000011a2: PUSH2 0x11ad
000011a5: JUMPI
000011a6: PUSH2 0x11ad
000011a9: PUSH2 0x25cf
000011ac: JUMP
000011ad: JUMPDEST
000011ae: EQ
000011af: DUP1
000011b0: ISZERO
000011b1: PUSH2 0x11d0
000011b4: JUMPI
000011b5: POP
000011b6: PUSH1 0x00
000011b8: PUSH1 0x0c
000011ba: SLOAD
000011bb: PUSH1 0xff
000011bd: AND
000011be: PUSH1 0x01
000011c0: DUP2
000011c1: GT
000011c2: ISZERO
000011c3: PUSH2 0x11ce
000011c6: JUMPI
000011c7: PUSH2 0x11ce
000011ca: PUSH2 0x25cf
000011cd: JUMP
000011ce: JUMPDEST
000011cf: EQ
000011d0: JUMPDEST
000011d1: ISZERO
000011d2: PUSH2 0x11e3
000011d5: JUMPI
000011d6: PUSH1 0x0c
000011d8: DUP1
000011d9: SLOAD
000011da: PUSH1 0xff
000011dc: NOT
000011dd: AND
000011de: PUSH1 0x01
000011e0: OR
000011e1: SWAP1
000011e2: SSTORE
000011e3: JUMPDEST
000011e4: PUSH1 0x04
000011e6: SLOAD
000011e7: PUSH1 0x01
000011e9: PUSH1 0x01
000011eb: PUSH1 0xa0
000011ed: SHL
000011ee: SUB
000011ef: AND
000011f0: PUSH2 0x120b
000011f3: JUMPI
000011f4: PUSH1 0x40
000011f6: MLOAD
000011f7: PUSH3 0x461bcd
000011fb: PUSH1 0xe5
000011fd: SHL
000011fe: DUP2
000011ff: MSTORE
00001200: PUSH1 0x04
00001202: ADD
00001203: PUSH2 0x084d
00001206: SWAP1
00001207: PUSH2 0x2844
0000120a: JUMP
0000120b: JUMPDEST
0000120c: DUP6
0000120d: ISZERO
0000120e: PUSH2 0x1227
00001211: JUMPI
00001212: PUSH1 0x04
00001214: SLOAD
00001215: PUSH2 0x1227
00001218: SWAP1
00001219: PUSH1 0x01
0000121b: PUSH1 0x01
0000121d: PUSH1 0xa0
0000121f: SHL
00001220: SUB
00001221: AND
00001222: DUP8
00001223: PUSH2 0x1c22
00001226: JUMP
00001227: JUMPDEST
00001228: DUP5
00001229: ISZERO
0000122a: PUSH2 0x1237
0000122d: JUMPI
0000122e: PUSH2 0x1237
00001231: CALLER
00001232: DUP7
00001233: PUSH2 0x1c22
00001236: JUMP
00001237: JUMPDEST
00001238: POP
00001239: POP
0000123a: POP
0000123b: POP
0000123c: POP
0000123d: POP
0000123e: PUSH2 0x0e1e
00001241: PUSH1 0x01
00001243: PUSH1 0x00
00001245: SSTORE
00001246: JUMP
00001247: JUMPDEST
00001248: PUSH1 0x00
0000124a: DUP1
0000124b: PUSH2 0x1255
0000124e: DUP4
0000124f: PUSH1 0x08
00001251: PUSH2 0x1f1b
00001254: JUMP
00001255: JUMPDEST
00001256: POP
00001257: SWAP1
00001258: SWAP2
00001259: POP
0000125a: PUSH2 0x1265
0000125d: SWAP1
0000125e: POP
0000125f: DUP2
00001260: DUP4
00001261: PUSH2 0x2554
00001264: JUMP
00001265: JUMPDEST
00001266: SWAP2
00001267: POP
00001268: PUSH2 0x1272
0000126b: DUP4
0000126c: PUSH1 0x58
0000126e: PUSH2 0x1f1b
00001271: JUMP
00001272: JUMPDEST
00001273: POP
00001274: SWAP1
00001275: SWAP2
00001276: POP
00001277: PUSH2 0x1282
0000127a: SWAP1
0000127b: POP
0000127c: DUP2
0000127d: DUP4
0000127e: PUSH2 0x2554
00001281: JUMP
00001282: JUMPDEST
00001283: SWAP2
00001284: POP
00001285: PUSH2 0x1290
00001288: DUP4
00001289: PUSH2 0x0120
0000128c: PUSH2 0x1f1b
0000128f: JUMP
00001290: JUMPDEST
00001291: POP
00001292: SWAP1
00001293: SWAP2
00001294: POP
00001295: PUSH2 0x12a0
00001298: SWAP1
00001299: POP
0000129a: DUP2
0000129b: DUP4
0000129c: PUSH2 0x2554
0000129f: JUMP
000012a0: JUMPDEST
000012a1: SWAP4
000012a2: SWAP3
000012a3: POP
000012a4: POP
000012a5: POP
000012a6: JUMP
000012a7: JUMPDEST
000012a8: PUSH2 0x12af
000012ab: PUSH2 0x1cc5
000012ae: JUMP
000012af: JUMPDEST
000012b0: PUSH1 0x02
000012b2: DUP1
000012b3: SLOAD
000012b4: PUSH1 0x01
000012b6: PUSH1 0x01
000012b8: PUSH1 0xa0
000012ba: SHL
000012bb: SUB
000012bc: DUP4
000012bd: AND
000012be: PUSH1 0x01
000012c0: PUSH1 0x01
000012c2: PUSH1 0xa0
000012c4: SHL
000012c5: SUB
000012c6: NOT
000012c7: SWAP1
000012c8: SWAP2
000012c9: AND
000012ca: DUP2
000012cb: OR
000012cc: SWAP1
000012cd: SWAP2
000012ce: SSTORE
000012cf: PUSH2 0x12e0
000012d2: PUSH1 0x01
000012d4: SLOAD
000012d5: PUSH1 0x01
000012d7: PUSH1 0x01
000012d9: PUSH1 0xa0
000012db: SHL
000012dc: SUB
000012dd: AND
000012de: SWAP1
000012df: JUMP
000012e0: JUMPDEST
000012e1: PUSH1 0x01
000012e3: PUSH1 0x01
000012e5: PUSH1 0xa0
000012e7: SHL
000012e8: SUB
000012e9: AND
000012ea: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700
0000130b: PUSH1 0x40
0000130d: MLOAD
0000130e: PUSH1 0x40
00001310: MLOAD
00001311: DUP1
00001312: SWAP2
00001313: SUB
00001314: SWAP1
00001315: LOG3
00001316: POP
00001317: JUMP
00001318: JUMPDEST
00001319: PUSH1 0x04
0000131b: SLOAD
0000131c: PUSH4 0xffffffff
00001321: PUSH1 0x01
00001323: PUSH1 0xa0
00001325: SHL
00001326: SWAP1
00001327: SWAP2
00001328: DIV
00001329: DUP2
0000132a: AND
0000132b: SWAP1
0000132c: PUSH1 0x00
0000132e: SWAP1
0000132f: PUSH3 0x015180
00001333: SWAP1
00001334: PUSH2 0x135f
00001337: SWAP1
00001338: PUSH32 0x00000000000000000000000000000000000000000000000000000000667be25b
00001359: AND
0000135a: TIMESTAMP
0000135b: PUSH2 0x2805
0000135e: JUMP
0000135f: JUMPDEST
00001360: PUSH2 0x1369
00001363: SWAP2
00001364: SWAP1
00001365: PUSH2 0x28ae
00001368: JUMP
00001369: JUMPDEST
0000136a: PUSH2 0x1374
0000136d: SWAP1
0000136e: PUSH1 0x01
00001370: PUSH2 0x2554
00001373: JUMP
00001374: JUMPDEST
00001375: SWAP1
00001376: POP
00001377: DUP2
00001378: PUSH4 0xffffffff
0000137d: AND
0000137e: DUP2
0000137f: PUSH4 0xffffffff
00001384: AND
00001385: GT
00001386: ISZERO
00001387: PUSH2 0x0a6a
0000138a: JUMPI
0000138b: PUSH1 0x05
0000138d: SLOAD
0000138e: PUSH1 0x00
00001390: PUSH2 0x1399
00001393: DUP5
00001394: DUP5
00001395: PUSH2 0x28c2
00001398: JUMP
00001399: JUMPDEST
0000139a: SWAP1
0000139b: POP
0000139c: DUP4
0000139d: PUSH1 0x00
0000139f: JUMPDEST
000013a0: DUP3
000013a1: PUSH4 0xffffffff
000013a6: AND
000013a7: DUP2
000013a8: PUSH4 0xffffffff
000013ad: AND
000013ae: LT
000013af: ISZERO
000013b0: PUSH2 0x1403
000013b3: JUMPI
000013b4: PUSH2 0x13bc
000013b7: DUP3
000013b8: PUSH2 0x28e6
000013bb: JUMP
000013bc: JUMPDEST
000013bd: SWAP2
000013be: POP
000013bf: PUSH2 0x13c9
000013c2: PUSH1 0x08
000013c4: DUP4
000013c5: PUSH2 0x2909
000013c8: JUMP
000013c9: JUMPDEST
000013ca: PUSH4 0xffffffff
000013cf: AND
000013d0: PUSH1 0x00
000013d2: SUB
000013d3: PUSH2 0x13fb
000013d6: JUMPI
000013d7: PUSH2 0x2710
000013da: PUSH2 0x13e4
000013dd: PUSH1 0x7e
000013df: DUP7
000013e0: PUSH2 0x27ee
000013e3: JUMP
000013e4: JUMPDEST
000013e5: PUSH2 0x13ee
000013e8: SWAP2
000013e9: SWAP1
000013ea: PUSH2 0x28ae
000013ed: JUMP
000013ee: JUMPDEST
000013ef: PUSH2 0x13f8
000013f2: SWAP1
000013f3: DUP6
000013f4: PUSH2 0x2805
000013f7: JUMP
000013f8: JUMPDEST
000013f9: SWAP4
000013fa: POP
000013fb: JUMPDEST
000013fc: PUSH1 0x01
000013fe: ADD
000013ff: PUSH2 0x139f
00001402: JUMP
00001403: JUMPDEST
00001404: POP
00001405: POP
00001406: POP
00001407: PUSH1 0x05
00001409: SSTORE
0000140a: PUSH1 0x04
0000140c: DUP1
0000140d: SLOAD
0000140e: PUSH4 0xffffffff
00001413: SWAP3
00001414: SWAP1
00001415: SWAP3
00001416: AND
00001417: PUSH1 0x01
00001419: PUSH1 0xa0
0000141b: SHL
0000141c: MUL
0000141d: PUSH4 0xffffffff
00001422: PUSH1 0xa0
00001424: SHL
00001425: NOT
00001426: SWAP1
00001427: SWAP3
00001428: AND
00001429: SWAP2
0000142a: SWAP1
0000142b: SWAP2
0000142c: OR
0000142d: SWAP1
0000142e: SSTORE
0000142f: POP
00001430: PUSH1 0x0c
00001432: DUP1
00001433: SLOAD
00001434: PUSH1 0xff
00001436: NOT
00001437: AND
00001438: SWAP1
00001439: SSTORE
0000143a: JUMP
0000143b: JUMPDEST
0000143c: PUSH1 0x02
0000143e: PUSH1 0x00
00001440: SLOAD
00001441: SUB
00001442: PUSH2 0x145e
00001445: JUMPI
00001446: PUSH1 0x40
00001448: MLOAD
00001449: PUSH4 0x3ee5aeb5
0000144e: PUSH1 0xe0
00001450: SHL
00001451: DUP2
00001452: MSTORE
00001453: PUSH1 0x04
00001455: ADD
00001456: PUSH1 0x40
00001458: MLOAD
00001459: DUP1
0000145a: SWAP2
0000145b: SUB
0000145c: SWAP1
0000145d: REVERT
0000145e: JUMPDEST
0000145f: PUSH1 0x02
00001461: PUSH1 0x00
00001463: SSTORE
00001464: JUMP
00001465: JUMPDEST
00001466: PUSH1 0x01
00001468: PUSH1 0x01
0000146a: PUSH1 0xa0
0000146c: SHL
0000146d: SUB
0000146e: DUP5
0000146f: AND
00001470: PUSH1 0x00
00001472: SWAP1
00001473: DUP2
00001474: MSTORE
00001475: PUSH1 0x15
00001477: PUSH1 0x20
00001479: SWAP1
0000147a: DUP2
0000147b: MSTORE
0000147c: PUSH1 0x40
0000147e: DUP1
0000147f: DUP4
00001480: KECCAK256
00001481: SLOAD
00001482: PUSH1 0x16
00001484: DUP4
00001485: MSTORE
00001486: DUP2
00001487: DUP5
00001488: KECCAK256
00001489: DUP2
0000148a: DUP6
0000148b: MSTORE
0000148c: SWAP1
0000148d: SWAP3
0000148e: MSTORE
0000148f: DUP3
00001490: KECCAK256
00001491: PUSH1 0x01
00001493: ADD
00001494: SLOAD
00001495: DUP3
00001496: DUP5
00001497: PUSH1 0x01
00001499: DUP2
0000149a: GT
0000149b: ISZERO
0000149c: PUSH2 0x14a7
0000149f: JUMPI
000014a0: PUSH2 0x14a7
000014a3: PUSH2 0x25cf
000014a6: JUMP
000014a7: JUMPDEST
000014a8: SUB
000014a9: PUSH2 0x1533
000014ac: JUMPI
000014ad: DUP2
000014ae: PUSH1 0x00
000014b0: SUB
000014b1: PUSH2 0x14b9
000014b4: JUMPI
000014b5: PUSH1 0x01
000014b7: SWAP3
000014b8: POP
000014b9: JUMPDEST
000014ba: PUSH2 0x14c3
000014bd: DUP7
000014be: DUP3
000014bf: PUSH2 0x2554
000014c2: JUMP
000014c3: JUMPDEST
000014c4: PUSH1 0x01
000014c6: PUSH1 0x01
000014c8: PUSH1 0xa0
000014ca: SHL
000014cb: SUB
000014cc: DUP9
000014cd: AND
000014ce: PUSH1 0x00
000014d0: SWAP1
000014d1: DUP2
000014d2: MSTORE
000014d3: PUSH1 0x16
000014d5: PUSH1 0x20
000014d7: MSTORE
000014d8: PUSH1 0x40
000014da: DUP2
000014db: KECCAK256
000014dc: SWAP1
000014dd: PUSH2 0x14e5
000014e0: DUP6
000014e1: PUSH2 0x27d5
000014e4: JUMP
000014e5: JUMPDEST
000014e6: SWAP5
000014e7: POP
000014e8: DUP5
000014e9: DUP2
000014ea: MSTORE
000014eb: PUSH1 0x20
000014ed: ADD
000014ee: SWAP1
000014ef: DUP2
000014f0: MSTORE
000014f1: PUSH1 0x20
000014f3: ADD
000014f4: PUSH1 0x00
000014f6: KECCAK256
000014f7: PUSH1 0x01
000014f9: ADD
000014fa: DUP2
000014fb: SWAP1
000014fc: SSTORE
000014fd: POP
000014fe: DUP6
000014ff: PUSH1 0x07
00001501: PUSH1 0x00
00001503: DUP3
00001504: DUP3
00001505: SLOAD
00001506: PUSH2 0x150f
00001509: SWAP2
0000150a: SWAP1
0000150b: PUSH2 0x2554
0000150e: JUMP
0000150f: JUMPDEST
00001510: SWAP3
00001511: POP
00001512: POP
00001513: DUP2
00001514: SWAP1
00001515: SSTORE
00001516: POP
00001517: DUP5
00001518: PUSH1 0x09
0000151a: PUSH1 0x00
0000151c: DUP3
0000151d: DUP3
0000151e: SLOAD
0000151f: PUSH2 0x1528
00001522: SWAP2
00001523: SWAP1
00001524: PUSH2 0x2554
00001527: JUMP
00001528: JUMPDEST
00001529: SWAP1
0000152a: SWAP2
0000152b: SSTORE
0000152c: POP
0000152d: PUSH2 0x15a8
00001530: SWAP1
00001531: POP
00001532: JUMP
00001533: JUMPDEST
00001534: PUSH2 0x153d
00001537: DUP7
00001538: DUP3
00001539: PUSH2 0x2805
0000153c: JUMP
0000153d: JUMPDEST
0000153e: PUSH1 0x01
00001540: PUSH1 0x01
00001542: PUSH1 0xa0
00001544: SHL
00001545: SUB
00001546: DUP9
00001547: AND
00001548: PUSH1 0x00
0000154a: SWAP1
0000154b: DUP2
0000154c: MSTORE
0000154d: PUSH1 0x16
0000154f: PUSH1 0x20
00001551: MSTORE
00001552: PUSH1 0x40
00001554: DUP2
00001555: KECCAK256
00001556: SWAP1
00001557: PUSH2 0x155f
0000155a: DUP6
0000155b: PUSH2 0x27d5
0000155e: JUMP
0000155f: JUMPDEST
00001560: SWAP5
00001561: POP
00001562: DUP5
00001563: DUP2
00001564: MSTORE
00001565: PUSH1 0x20
00001567: ADD
00001568: SWAP1
00001569: DUP2
0000156a: MSTORE
0000156b: PUSH1 0x20
0000156d: ADD
0000156e: PUSH1 0x00
00001570: KECCAK256
00001571: PUSH1 0x01
00001573: ADD
00001574: DUP2
00001575: SWAP1
00001576: SSTORE
00001577: POP
00001578: DUP6
00001579: PUSH1 0x08
0000157b: PUSH1 0x00
0000157d: DUP3
0000157e: DUP3
0000157f: SLOAD
00001580: PUSH2 0x1589
00001583: SWAP2
00001584: SWAP1
00001585: PUSH2 0x2554
00001588: JUMP
00001589: JUMPDEST
0000158a: SWAP3
0000158b: POP
0000158c: POP
0000158d: DUP2
0000158e: SWAP1
0000158f: SSTORE
00001590: POP
00001591: DUP5
00001592: PUSH1 0x09
00001594: PUSH1 0x00
00001596: DUP3
00001597: DUP3
00001598: SLOAD
00001599: PUSH2 0x15a2
0000159c: SWAP2
0000159d: SWAP1
0000159e: PUSH2 0x2805
000015a1: JUMP
000015a2: JUMPDEST
000015a3: SWAP1
000015a4: SWAP2
000015a5: SSTORE
000015a6: POP
000015a7: POP
000015a8: JUMPDEST
000015a9: PUSH1 0x00
000015ab: PUSH1 0x0c
000015ad: SLOAD
000015ae: PUSH1 0xff
000015b0: AND
000015b1: PUSH1 0x01
000015b3: DUP2
000015b4: GT
000015b5: ISZERO
000015b6: PUSH2 0x15c1
000015b9: JUMPI
000015ba: PUSH2 0x15c1
000015bd: PUSH2 0x25cf
000015c0: JUMP
000015c1: JUMPDEST
000015c2: EQ
000015c3: PUSH2 0x15e6
000015c6: JUMPI
000015c7: PUSH1 0x04
000015c9: SLOAD
000015ca: PUSH2 0x15e1
000015cd: SWAP1
000015ce: PUSH1 0x01
000015d0: PUSH1 0xa0
000015d2: SHL
000015d3: SWAP1
000015d4: DIV
000015d5: PUSH4 0xffffffff
000015da: AND
000015db: PUSH1 0x01
000015dd: PUSH2 0x292c
000015e0: JUMP
000015e1: JUMPDEST
000015e2: PUSH2 0x15f7
000015e5: JUMP
000015e6: JUMPDEST
000015e7: PUSH1 0x04
000015e9: SLOAD
000015ea: PUSH1 0x01
000015ec: PUSH1 0xa0
000015ee: SHL
000015ef: SWAP1
000015f0: DIV
000015f1: PUSH4 0xffffffff
000015f6: AND
000015f7: JUMPDEST
000015f8: PUSH1 0x01
000015fa: PUSH1 0x01
000015fc: PUSH1 0xa0
000015fe: SHL
000015ff: SUB
00001600: SWAP8
00001601: SWAP1
00001602: SWAP8
00001603: AND
00001604: PUSH1 0x00
00001606: DUP2
00001607: DUP2
00001608: MSTORE
00001609: PUSH1 0x16
0000160b: PUSH1 0x20
0000160d: SWAP1
0000160e: DUP2
0000160f: MSTORE
00001610: PUSH1 0x40
00001612: DUP1
00001613: DUP4
00001614: KECCAK256
00001615: DUP7
00001616: DUP5
00001617: MSTORE
00001618: DUP3
00001619: MSTORE
0000161a: DUP1
0000161b: DUP4
0000161c: KECCAK256
0000161d: DUP1
0000161e: SLOAD
0000161f: PUSH4 0xffffffff
00001624: NOT
00001625: AND
00001626: PUSH4 0xffffffff
0000162b: SWAP1
0000162c: SWAP13
0000162d: AND
0000162e: SWAP12
0000162f: SWAP1
00001630: SWAP12
00001631: OR
00001632: SWAP1
00001633: SWAP11
00001634: SSTORE
00001635: SWAP2
00001636: DUP2
00001637: MSTORE
00001638: PUSH1 0x15
0000163a: SWAP1
0000163b: SWAP2
0000163c: MSTORE
0000163d: SWAP7
0000163e: SWAP1
0000163f: SWAP7
00001640: KECCAK256
00001641: SSTORE
00001642: SWAP5
00001643: SWAP4
00001644: POP
00001645: POP
00001646: POP
00001647: POP
00001648: JUMP
00001649: JUMPDEST
0000164a: PUSH1 0x08
0000164c: PUSH1 0x00
0000164e: MSTORE
0000164f: PUSH1 0x0e
00001651: PUSH1 0x20
00001653: MSTORE
00001654: PUSH32 0xeab6bc3746954d8a0719de62c86ea908d362be2a58c781ada1046727253f9df2
00001675: SLOAD
00001676: PUSH4 0xffffffff
0000167b: AND
0000167c: ISZERO
0000167d: PUSH2 0x0e73
00001680: JUMPI
00001681: PUSH1 0x08
00001683: PUSH1 0x00
00001685: MSTORE
00001686: PUSH1 0x0e
00001688: PUSH1 0x20
0000168a: MSTORE
0000168b: PUSH32 0xeab6bc3746954d8a0719de62c86ea908d362be2a58c781ada1046727253f9df2
000016ac: SLOAD
000016ad: PUSH2 0x16bd
000016b0: SWAP1
000016b1: PUSH4 0xffffffff
000016b6: AND
000016b7: PUSH1 0x01
000016b9: PUSH2 0x292c
000016bc: JUMP
000016bd: JUMPDEST
000016be: PUSH1 0x01
000016c0: PUSH1 0x01
000016c2: PUSH1 0xa0
000016c4: SHL
000016c5: SUB
000016c6: DUP3
000016c7: AND
000016c8: PUSH1 0x00
000016ca: SWAP1
000016cb: DUP2
000016cc: MSTORE
000016cd: PUSH1 0x11
000016cf: PUSH1 0x20
000016d1: SWAP1
000016d2: DUP2
000016d3: MSTORE
000016d4: PUSH1 0x40
000016d6: DUP1
000016d7: DUP4
000016d8: KECCAK256
000016d9: PUSH1 0x08
000016db: DUP5
000016dc: MSTORE
000016dd: DUP3
000016de: MSTORE
000016df: DUP3
000016e0: KECCAK256
000016e1: DUP1
000016e2: SLOAD
000016e3: PUSH4 0xffffffff
000016e8: NOT
000016e9: AND
000016ea: PUSH4 0xffffffff
000016ef: SWAP5
000016f0: DUP6
000016f1: AND
000016f2: OR
000016f3: SWAP1
000016f4: SSTORE
000016f5: PUSH1 0x58
000016f7: SWAP1
000016f8: SWAP2
000016f9: MSTORE
000016fa: PUSH1 0x0e
000016fc: SWAP1
000016fd: MSTORE
000016fe: PUSH32 0x5ea54d52ee8c9b980f7ee6f575aaaf3d4769efd8809d64a2e6f4c02f24b3e922
0000171f: SLOAD
00001720: PUSH2 0x172b
00001723: SWAP2
00001724: AND
00001725: PUSH1 0x01
00001727: PUSH2 0x292c
0000172a: JUMP
0000172b: JUMPDEST
0000172c: PUSH1 0x01
0000172e: PUSH1 0x01
00001730: PUSH1 0xa0
00001732: SHL
00001733: SUB
00001734: DUP3
00001735: AND
00001736: PUSH1 0x00
00001738: SWAP1
00001739: DUP2
0000173a: MSTORE
0000173b: PUSH1 0x11
0000173d: PUSH1 0x20
0000173f: SWAP1
00001740: DUP2
00001741: MSTORE
00001742: PUSH1 0x40
00001744: DUP1
00001745: DUP4
00001746: KECCAK256
00001747: PUSH1 0x58
00001749: DUP5
0000174a: MSTORE
0000174b: DUP3
0000174c: MSTORE
0000174d: DUP3
0000174e: KECCAK256
0000174f: DUP1
00001750: SLOAD
00001751: PUSH4 0xffffffff
00001756: NOT
00001757: AND
00001758: PUSH4 0xffffffff
0000175d: SWAP5
0000175e: DUP6
0000175f: AND
00001760: OR
00001761: SWAP1
00001762: SSTORE
00001763: PUSH2 0x0120
00001766: SWAP1
00001767: SWAP2
00001768: MSTORE
00001769: PUSH1 0x0e
0000176b: SWAP1
0000176c: MSTORE
0000176d: PUSH32 0x6a7f5fcd829d841f4ae5df66fd4f81e89c1ed4f8ab5607b4598ad4aaec790678
0000178e: SLOAD
0000178f: PUSH2 0x179a
00001792: SWAP2
00001793: AND
00001794: PUSH1 0x01
00001796: PUSH2 0x292c
00001799: JUMP
0000179a: JUMPDEST
0000179b: PUSH1 0x01
0000179d: PUSH1 0x01
0000179f: PUSH1 0xa0
000017a1: SHL
000017a2: SUB
000017a3: SWAP2
000017a4: SWAP1
000017a5: SWAP2
000017a6: AND
000017a7: PUSH1 0x00
000017a9: SWAP1
000017aa: DUP2
000017ab: MSTORE
000017ac: PUSH1 0x11
000017ae: PUSH1 0x20
000017b0: SWAP1
000017b1: DUP2
000017b2: MSTORE
000017b3: PUSH1 0x40
000017b5: DUP1
000017b6: DUP4
000017b7: KECCAK256
000017b8: PUSH2 0x0120
000017bb: DUP5
000017bc: MSTORE
000017bd: SWAP1
000017be: SWAP2
000017bf: MSTORE
000017c0: SWAP1
000017c1: KECCAK256
000017c2: DUP1
000017c3: SLOAD
000017c4: PUSH4 0xffffffff
000017c9: NOT
000017ca: AND
000017cb: PUSH4 0xffffffff
000017d0: SWAP3
000017d1: SWAP1
000017d2: SWAP3
000017d3: AND
000017d4: SWAP2
000017d5: SWAP1
000017d6: SWAP2
000017d7: OR
000017d8: SWAP1
000017d9: SSTORE
000017da: JUMP
000017db: JUMPDEST
000017dc: PUSH1 0x04
000017de: DUP1
000017df: SLOAD
000017e0: PUSH1 0x40
000017e2: DUP1
000017e3: MLOAD
000017e4: PUSH4 0x3c42b341
000017e9: PUSH1 0xe0
000017eb: SHL
000017ec: DUP2
000017ed: MSTORE
000017ee: SWAP1
000017ef: MLOAD
000017f0: PUSH1 0x00
000017f2: SWAP4
000017f3: DUP5
000017f4: SWAP4
000017f5: PUSH1 0x01
000017f7: PUSH1 0x01
000017f9: PUSH1 0xa0
000017fb: SHL
000017fc: SUB
000017fd: AND
000017fe: SWAP3
000017ff: PUSH4 0x3c42b341
00001804: SWAP3
00001805: DUP2
00001806: DUP4
00001807: ADD
00001808: SWAP3
00001809: PUSH1 0x60
0000180b: SWAP3
0000180c: DUP3
0000180d: SWAP1
0000180e: SUB
0000180f: ADD
00001810: DUP2
00001811: DUP7
00001812: GAS
00001813: STATICCALL
00001814: ISZERO
00001815: DUP1
00001816: ISZERO
00001817: PUSH2 0x1824
0000181a: JUMPI
0000181b: RETURNDATASIZE
0000181c: PUSH1 0x00
0000181e: DUP1
0000181f: RETURNDATACOPY
00001820: RETURNDATASIZE
00001821: PUSH1 0x00
00001823: REVERT
00001824: JUMPDEST
00001825: POP
00001826: POP
00001827: POP
00001828: POP
00001829: PUSH1 0x40
0000182b: MLOAD
0000182c: RETURNDATASIZE
0000182d: PUSH1 0x1f
0000182f: NOT
00001830: PUSH1 0x1f
00001832: DUP3
00001833: ADD
00001834: AND
00001835: DUP3
00001836: ADD
00001837: DUP1
00001838: PUSH1 0x40
0000183a: MSTORE
0000183b: POP
0000183c: DUP2
0000183d: ADD
0000183e: SWAP1
0000183f: PUSH2 0x1848
00001842: SWAP2
00001843: SWAP1
00001844: PUSH2 0x2949
00001847: JUMP
00001848: JUMPDEST
00001849: POP
0000184a: SWAP1
0000184b: SWAP3
0000184c: POP
0000184d: SWAP1
0000184e: POP
0000184f: PUSH1 0x00
00001851: PUSH2 0x185b
00001854: PUSH1 0x01
00001856: DUP4
00001857: PUSH2 0x2805
0000185a: JUMP
0000185b: JUMPDEST
0000185c: PUSH2 0x1867
0000185f: SWAP1
00001860: PUSH2 0x0378
00001863: PUSH2 0x27ee
00001866: JUMP
00001867: JUMPDEST
00001868: SWAP1
00001869: POP
0000186a: PUSH1 0x00
0000186c: PUSH2 0x1877
0000186f: DUP3
00001870: PUSH2 0x016d
00001873: PUSH2 0x2554
00001876: JUMP
00001877: JUMPDEST
00001878: SWAP1
00001879: POP
0000187a: DUP1
0000187b: DUP5
0000187c: GT
0000187d: DUP1
0000187e: ISZERO
0000187f: SWAP1
00001880: PUSH2 0x18bc
00001883: JUMPI
00001884: PUSH1 0x01
00001886: PUSH1 0x01
00001888: PUSH1 0xa0
0000188a: SHL
0000188b: SUB
0000188c: DUP8
0000188d: AND
0000188e: PUSH1 0x00
00001890: SWAP1
00001891: DUP2
00001892: MSTORE
00001893: PUSH1 0x17
00001895: PUSH1 0x20
00001897: SWAP1
00001898: DUP2
00001899: MSTORE
0000189a: PUSH1 0x40
0000189c: DUP1
0000189d: DUP4
0000189e: KECCAK256
0000189f: DUP8
000018a0: DUP5
000018a1: MSTORE
000018a2: SWAP1
000018a3: SWAP2
000018a4: MSTORE
000018a5: DUP2
000018a6: KECCAK256
000018a7: DUP1
000018a8: SLOAD
000018a9: DUP9
000018aa: SWAP3
000018ab: SWAP1
000018ac: PUSH2 0x18b6
000018af: SWAP1
000018b0: DUP5
000018b1: SWAP1
000018b2: PUSH2 0x2554
000018b5: JUMP
000018b6: JUMPDEST
000018b7: SWAP1
000018b8: SWAP2
000018b9: SSTORE
000018ba: POP
000018bb: POP
000018bc: JUMPDEST
000018bd: POP
000018be: POP
000018bf: POP
000018c0: POP
000018c1: POP
000018c2: POP
000018c3: POP
000018c4: JUMP
000018c5: JUMPDEST
000018c6: PUSH1 0x40
000018c8: MLOAD
000018c9: PUSH1 0x01
000018cb: PUSH1 0x01
000018cd: PUSH1 0xa0
000018cf: SHL
000018d0: SUB
000018d1: DUP5
000018d2: DUP2
000018d3: AND
000018d4: PUSH1 0x24
000018d6: DUP4
000018d7: ADD
000018d8: MSTORE
000018d9: DUP4
000018da: DUP2
000018db: AND
000018dc: PUSH1 0x44
000018de: DUP4
000018df: ADD
000018e0: MSTORE
000018e1: PUSH1 0x64
000018e3: DUP3
000018e4: ADD
000018e5: DUP4
000018e6: SWAP1
000018e7: MSTORE
000018e8: PUSH2 0x192c
000018eb: SWAP2
000018ec: DUP7
000018ed: SWAP2
000018ee: DUP3
000018ef: AND
000018f0: SWAP1
000018f1: PUSH4 0x23b872dd
000018f6: SWAP1
000018f7: PUSH1 0x84
000018f9: ADD
000018fa: JUMPDEST
000018fb: PUSH1 0x40
000018fd: MLOAD
000018fe: PUSH1 0x20
00001900: DUP2
00001901: DUP4
00001902: SUB
00001903: SUB
00001904: DUP2
00001905: MSTORE
00001906: SWAP1
00001907: PUSH1 0x40
00001909: MSTORE
0000190a: SWAP2
0000190b: POP
0000190c: PUSH1 0xe0
0000190e: SHL
0000190f: PUSH1 0x20
00001911: DUP3
00001912: ADD
00001913: DUP1
00001914: MLOAD
00001915: PUSH1 0x01
00001917: PUSH1 0x01
00001919: PUSH1 0xe0
0000191b: SHL
0000191c: SUB
0000191d: DUP4
0000191e: DUP2
0000191f: DUP4
00001920: AND
00001921: OR
00001922: DUP4
00001923: MSTORE
00001924: POP
00001925: POP
00001926: POP
00001927: POP
00001928: PUSH2 0x2099
0000192b: JUMP
0000192c: JUMPDEST
0000192d: POP
0000192e: POP
0000192f: POP
00001930: POP
00001931: JUMP
00001932: JUMPDEST
00001933: PUSH1 0x01
00001935: PUSH1 0x01
00001937: PUSH1 0xa0
00001939: SHL
0000193a: SUB
0000193b: DUP3
0000193c: AND
0000193d: PUSH1 0x00
0000193f: SWAP1
00001940: DUP2
00001941: MSTORE
00001942: PUSH1 0x13
00001944: PUSH1 0x20
00001946: SWAP1
00001947: DUP2
00001948: MSTORE
00001949: PUSH1 0x40
0000194b: DUP1
0000194c: DUP4
0000194d: KECCAK256
0000194e: DUP5
0000194f: DUP5
00001950: MSTORE
00001951: SWAP1
00001952: SWAP2
00001953: MSTORE
00001954: DUP2
00001955: KECCAK256
00001956: SLOAD
00001957: DUP1
00001958: DUP3
00001959: SUB
0000195a: PUSH2 0x19bb
0000195d: JUMPI
0000195e: PUSH1 0x40
00001960: MLOAD
00001961: PUSH3 0x461bcd
00001965: PUSH1 0xe5
00001967: SHL
00001968: DUP2
00001969: MSTORE
0000196a: PUSH1 0x20
0000196c: PUSH1 0x04
0000196e: DUP3
0000196f: ADD
00001970: MSTORE
00001971: PUSH1 0x2d
00001973: PUSH1 0x24
00001975: DUP3
00001976: ADD
00001977: MSTORE
00001978: PUSH32 0x626c617a655374616b696e673a626c617a65207374616b696e67207374616b65
00001999: PUSH1 0x44
0000199b: DUP3
0000199c: ADD
0000199d: MSTORE
0000199e: PUSH13 0x081a59081b9bdd081d985b1a59
000019ac: PUSH1 0x9a
000019ae: SHL
000019af: PUSH1 0x64
000019b1: DUP3
000019b2: ADD
000019b3: MSTORE
000019b4: PUSH1 0x84
000019b6: ADD
000019b7: PUSH2 0x084d
000019ba: JUMP
000019bb: JUMPDEST
000019bc: PUSH1 0x00
000019be: DUP2
000019bf: DUP2
000019c0: MSTORE
000019c1: PUSH1 0x14
000019c3: PUSH1 0x20
000019c5: SWAP1
000019c6: DUP2
000019c7: MSTORE
000019c8: PUSH1 0x40
000019ca: DUP1
000019cb: DUP4
000019cc: KECCAK256
000019cd: DUP2
000019ce: MLOAD
000019cf: PUSH1 0xc0
000019d1: DUP2
000019d2: ADD
000019d3: DUP4
000019d4: MSTORE
000019d5: DUP2
000019d6: SLOAD
000019d7: DUP2
000019d8: MSTORE
000019d9: PUSH1 0x01
000019db: DUP1
000019dc: DUP4
000019dd: ADD
000019de: SLOAD
000019df: SWAP5
000019e0: DUP3
000019e1: ADD
000019e2: SWAP5
000019e3: SWAP1
000019e4: SWAP5
000019e5: MSTORE
000019e6: PUSH1 0x02
000019e8: DUP3
000019e9: ADD
000019ea: SLOAD
000019eb: PUSH2 0xffff
000019ee: DUP2
000019ef: AND
000019f0: SWAP4
000019f1: DUP3
000019f2: ADD
000019f3: SWAP4
000019f4: SWAP1
000019f5: SWAP4
000019f6: MSTORE
000019f7: PUSH3 0x010000
000019fb: DUP4
000019fc: DIV
000019fd: PUSH4 0xffffffff
00001a02: SWAP1
00001a03: DUP2
00001a04: AND
00001a05: PUSH1 0x60
00001a07: DUP4
00001a08: ADD
00001a09: MSTORE
00001a0a: PUSH1 0x01
00001a0c: PUSH1 0x30
00001a0e: SHL
00001a0f: DUP5
00001a10: DIV
00001a11: AND
00001a12: PUSH1 0x80
00001a14: DUP3
00001a15: ADD
00001a16: MSTORE
00001a17: SWAP3
00001a18: SWAP1
00001a19: SWAP2
00001a1a: PUSH1 0xa0
00001a1c: DUP5
00001a1d: ADD
00001a1e: SWAP2
00001a1f: PUSH1 0x01
00001a21: PUSH1 0x50
00001a23: SHL
00001a24: SWAP1
00001a25: SWAP2
00001a26: DIV
00001a27: PUSH1 0xff
00001a29: AND
00001a2a: SWAP1
00001a2b: DUP2
00001a2c: GT
00001a2d: ISZERO
00001a2e: PUSH2 0x1a39
00001a31: JUMPI
00001a32: PUSH2 0x1a39
00001a35: PUSH2 0x25cf
00001a38: JUMP
00001a39: JUMPDEST
00001a3a: PUSH1 0x01
00001a3c: DUP2
00001a3d: GT
00001a3e: ISZERO
00001a3f: PUSH2 0x1a4a
00001a42: JUMPI
00001a43: PUSH2 0x1a4a
00001a46: PUSH2 0x25cf
00001a49: JUMP
00001a4a: JUMPDEST
00001a4b: SWAP1
00001a4c: MSTORE
00001a4d: POP
00001a4e: SWAP1
00001a4f: POP
00001a50: PUSH1 0x01
00001a52: DUP2
00001a53: PUSH1 0xa0
00001a55: ADD
00001a56: MLOAD
00001a57: PUSH1 0x01
00001a59: DUP2
00001a5a: GT
00001a5b: ISZERO
00001a5c: PUSH2 0x1a67
00001a5f: JUMPI
00001a60: PUSH2 0x1a67
00001a63: PUSH2 0x25cf
00001a66: JUMP
00001a67: JUMPDEST
00001a68: SUB
00001a69: PUSH2 0x1ac7
00001a6c: JUMPI
00001a6d: PUSH1 0x40
00001a6f: MLOAD
00001a70: PUSH3 0x461bcd
00001a74: PUSH1 0xe5
00001a76: SHL
00001a77: DUP2
00001a78: MSTORE
00001a79: PUSH1 0x20
00001a7b: PUSH1 0x04
00001a7d: DUP3
00001a7e: ADD
00001a7f: MSTORE
00001a80: PUSH1 0x2a
00001a82: PUSH1 0x24
00001a84: DUP3
00001a85: ADD
00001a86: MSTORE
00001a87: PUSH32 0x626c617a655374616b696e673a626c617a65207374616b652068617320616c72
00001aa8: PUSH1 0x44
00001aaa: DUP3
00001aab: ADD
00001aac: MSTORE
00001aad: PUSH10 0x1958591e48195b991959
00001ab8: PUSH1 0xb2
00001aba: SHL
00001abb: PUSH1 0x64
00001abd: DUP3
00001abe: ADD
00001abf: MSTORE
00001ac0: PUSH1 0x84
00001ac2: ADD
00001ac3: PUSH2 0x084d
00001ac6: JUMP
00001ac7: JUMPDEST
00001ac8: DUP1
00001ac9: PUSH1 0x80
00001acb: ADD
00001acc: MLOAD
00001acd: PUSH4 0xffffffff
00001ad2: AND
00001ad3: TIMESTAMP
00001ad4: LT
00001ad5: ISZERO
00001ad6: PUSH2 0x1b2d
00001ad9: JUMPI
00001ada: PUSH1 0x40
00001adc: MLOAD
00001add: PUSH3 0x461bcd
00001ae1: PUSH1 0xe5
00001ae3: SHL
00001ae4: DUP2
00001ae5: MSTORE
00001ae6: PUSH1 0x20
00001ae8: PUSH1 0x04
00001aea: DUP3
00001aeb: ADD
00001aec: MSTORE
00001aed: PUSH1 0x24
00001aef: DUP1
00001af0: DUP3
00001af1: ADD
00001af2: MSTORE
00001af3: PUSH32 0x626c617a655374616b696e673a626c617a65207374616b65206e6f74206d6174
00001b14: PUSH1 0x44
00001b16: DUP3
00001b17: ADD
00001b18: MSTORE
00001b19: PUSH4 0x1d5c9959
00001b1e: PUSH1 0xe2
00001b20: SHL
00001b21: PUSH1 0x64
00001b23: DUP3
00001b24: ADD
00001b25: MSTORE
00001b26: PUSH1 0x84
00001b28: ADD
00001b29: PUSH2 0x084d
00001b2c: JUMP
00001b2d: JUMPDEST
00001b2e: PUSH1 0x20
00001b30: DUP2
00001b31: ADD
00001b32: MLOAD
00001b33: DUP2
00001b34: MLOAD
00001b35: PUSH2 0x1b43
00001b38: SWAP1
00001b39: DUP8
00001b3a: SWAP1
00001b3b: DUP4
00001b3c: SWAP1
00001b3d: PUSH1 0x01
00001b3f: PUSH2 0x1465
00001b42: JUMP
00001b43: JUMPDEST
00001b44: POP
00001b45: PUSH1 0x0a
00001b47: PUSH1 0x00
00001b49: DUP2
00001b4a: SLOAD
00001b4b: PUSH2 0x1b53
00001b4e: SWAP1
00001b4f: PUSH2 0x27d5
00001b52: JUMP
00001b53: JUMPDEST
00001b54: SWAP1
00001b55: SWAP2
00001b56: SSTORE
00001b57: POP
00001b58: PUSH1 0x00
00001b5a: DUP4
00001b5b: DUP2
00001b5c: MSTORE
00001b5d: PUSH1 0x14
00001b5f: PUSH1 0x20
00001b61: MSTORE
00001b62: PUSH1 0x40
00001b64: DUP1
00001b65: DUP3
00001b66: KECCAK256
00001b67: PUSH1 0x02
00001b69: ADD
00001b6a: DUP1
00001b6b: SLOAD
00001b6c: PUSH1 0xff
00001b6e: PUSH1 0x50
00001b70: SHL
00001b71: NOT
00001b72: AND
00001b73: PUSH1 0x01
00001b75: PUSH1 0x50
00001b77: SHL
00001b78: OR
00001b79: SWAP1
00001b7a: SSTORE
00001b7b: DUP4
00001b7c: MLOAD
00001b7d: SWAP1
00001b7e: MLOAD
00001b7f: SWAP1
00001b80: SWAP6
00001b81: POP
00001b82: DUP6
00001b83: SWAP2
00001b84: DUP6
00001b85: SWAP2
00001b86: PUSH1 0x01
00001b88: PUSH1 0x01
00001b8a: PUSH1 0xa0
00001b8c: SHL
00001b8d: SUB
00001b8e: DUP11
00001b8f: AND
00001b90: SWAP2
00001b91: PUSH32 0x7d3d1f4caaa5edea815c2f70589d94440879c198ee4240e2fdf87137d497e19b
00001bb2: SWAP2
00001bb3: LOG4
00001bb4: POP
00001bb5: POP
00001bb6: POP
00001bb7: SWAP3
00001bb8: SWAP2
00001bb9: POP
00001bba: POP
00001bbb: JUMP
00001bbc: JUMPDEST
00001bbd: PUSH1 0x40
00001bbf: MLOAD
00001bc0: PUSH1 0x01
00001bc2: PUSH1 0x01
00001bc4: PUSH1 0xa0
00001bc6: SHL
00001bc7: SUB
00001bc8: DUP4
00001bc9: DUP2
00001bca: AND
00001bcb: PUSH1 0x24
00001bcd: DUP4
00001bce: ADD
00001bcf: MSTORE
00001bd0: PUSH1 0x44
00001bd2: DUP3
00001bd3: ADD
00001bd4: DUP4
00001bd5: SWAP1
00001bd6: MSTORE
00001bd7: PUSH2 0x1bed
00001bda: SWAP2
00001bdb: DUP6
00001bdc: SWAP2
00001bdd: DUP3
00001bde: AND
00001bdf: SWAP1
00001be0: PUSH4 0xa9059cbb
00001be5: SWAP1
00001be6: PUSH1 0x64
00001be8: ADD
00001be9: PUSH2 0x18fa
00001bec: JUMP
00001bed: JUMPDEST
00001bee: POP
00001bef: POP
00001bf0: POP
00001bf1: JUMP
00001bf2: JUMPDEST
00001bf3: PUSH1 0x00
00001bf5: DUP1
00001bf6: DUP1
00001bf7: DUP1
00001bf8: PUSH2 0x1c01
00001bfb: CALLER
00001bfc: DUP7
00001bfd: PUSH2 0x1f1b
00001c00: JUMP
00001c01: JUMPDEST
00001c02: SWAP3
00001c03: POP
00001c04: SWAP3
00001c05: POP
00001c06: SWAP3
00001c07: POP
00001c08: PUSH2 0x1c19
00001c0b: PUSH2 0x1c11
00001c0e: CALLER
00001c0f: SWAP1
00001c10: JUMP
00001c11: JUMPDEST
00001c12: DUP7
00001c13: DUP4
00001c14: DUP6
00001c15: PUSH2 0x20fc
00001c18: JUMP
00001c19: JUMPDEST
00001c1a: POP
00001c1b: SWAP1
00001c1c: SWAP4
00001c1d: SWAP3
00001c1e: POP
00001c1f: POP
00001c20: POP
00001c21: JUMP
00001c22: JUMPDEST
00001c23: PUSH1 0x00
00001c25: DUP3
00001c26: PUSH1 0x01
00001c28: PUSH1 0x01
00001c2a: PUSH1 0xa0
00001c2c: SHL
00001c2d: SUB
00001c2e: AND
00001c2f: DUP3
00001c30: PUSH1 0x40
00001c32: MLOAD
00001c33: PUSH1 0x00
00001c35: PUSH1 0x40
00001c37: MLOAD
00001c38: DUP1
00001c39: DUP4
00001c3a: SUB
00001c3b: DUP2
00001c3c: DUP6
00001c3d: DUP8
00001c3e: GAS
00001c3f: CALL
00001c40: SWAP3
00001c41: POP
00001c42: POP
00001c43: POP
00001c44: RETURNDATASIZE
00001c45: DUP1
00001c46: PUSH1 0x00
00001c48: DUP2
00001c49: EQ
00001c4a: PUSH2 0x1c6f
00001c4d: JUMPI
00001c4e: PUSH1 0x40
00001c50: MLOAD
00001c51: SWAP2
00001c52: POP
00001c53: PUSH1 0x1f
00001c55: NOT
00001c56: PUSH1 0x3f
00001c58: RETURNDATASIZE
00001c59: ADD
00001c5a: AND
00001c5b: DUP3
00001c5c: ADD
00001c5d: PUSH1 0x40
00001c5f: MSTORE
00001c60: RETURNDATASIZE
00001c61: DUP3
00001c62: MSTORE
00001c63: RETURNDATASIZE
00001c64: PUSH1 0x00
00001c66: PUSH1 0x20
00001c68: DUP5
00001c69: ADD
00001c6a: RETURNDATACOPY
00001c6b: PUSH2 0x1c74
00001c6e: JUMP
00001c6f: JUMPDEST
00001c70: PUSH1 0x60
00001c72: SWAP2
00001c73: POP
00001c74: JUMPDEST
00001c75: POP
00001c76: POP
00001c77: SWAP1
00001c78: POP
00001c79: DUP1
00001c7a: PUSH2 0x1bed
00001c7d: JUMPI
00001c7e: PUSH1 0x40
00001c80: MLOAD
00001c81: PUSH3 0x461bcd
00001c85: PUSH1 0xe5
00001c87: SHL
00001c88: DUP2
00001c89: MSTORE
00001c8a: PUSH1 0x20
00001c8c: PUSH1 0x04
00001c8e: DUP3
00001c8f: ADD
00001c90: DUP2
00001c91: SWAP1
00001c92: MSTORE
00001c93: PUSH1 0x24
00001c95: DUP3
00001c96: ADD
00001c97: MSTORE
00001c98: PUSH32 0x626c617a655374616b696e673a657468207472616e73666572206661696c6564
00001cb9: PUSH1 0x44
00001cbb: DUP3
00001cbc: ADD
00001cbd: MSTORE
00001cbe: PUSH1 0x64
00001cc0: ADD
00001cc1: PUSH2 0x084d
00001cc4: JUMP
00001cc5: JUMPDEST
00001cc6: PUSH1 0x01
00001cc8: SLOAD
00001cc9: PUSH1 0x01
00001ccb: PUSH1 0x01
00001ccd: PUSH1 0xa0
00001ccf: SHL
00001cd0: SUB
00001cd1: AND
00001cd2: CALLER
00001cd3: EQ
00001cd4: PUSH2 0x0e1e
00001cd7: JUMPI
00001cd8: PUSH1 0x40
00001cda: MLOAD
00001cdb: PUSH4 0x118cdaa7
00001ce0: PUSH1 0xe0
00001ce2: SHL
00001ce3: DUP2
00001ce4: MSTORE
00001ce5: CALLER
00001ce6: PUSH1 0x04
00001ce8: DUP3
00001ce9: ADD
00001cea: MSTORE
00001ceb: PUSH1 0x24
00001ced: ADD
00001cee: PUSH2 0x084d
00001cf1: JUMP
00001cf2: JUMPDEST
00001cf3: PUSH1 0x02
00001cf5: DUP1
00001cf6: SLOAD
00001cf7: PUSH1 0x01
00001cf9: PUSH1 0x01
00001cfb: PUSH1 0xa0
00001cfd: SHL
00001cfe: SUB
00001cff: NOT
00001d00: AND
00001d01: SWAP1
00001d02: SSTORE
00001d03: PUSH2 0x0e73
00001d06: DUP2
00001d07: PUSH2 0x2206
00001d0a: JUMP
00001d0b: JUMPDEST
00001d0c: PUSH1 0x0b
00001d0e: SLOAD
00001d0f: PUSH1 0x00
00001d11: SWAP1
00001d12: DUP2
00001d13: SWAP1
00001d14: DUP1
00001d15: PUSH2 0x1d6b
00001d18: JUMPI
00001d19: PUSH1 0x40
00001d1b: MLOAD
00001d1c: PUSH3 0x461bcd
00001d20: PUSH1 0xe5
00001d22: SHL
00001d23: DUP2
00001d24: MSTORE
00001d25: PUSH1 0x20
00001d27: PUSH1 0x04
00001d29: DUP3
00001d2a: ADD
00001d2b: MSTORE
00001d2c: PUSH1 0x22
00001d2e: PUSH1 0x24
00001d30: DUP3
00001d31: ADD
00001d32: MSTORE
00001d33: PUSH32 0x626c617a655374616b696e673a4e6f206665657320746f206469737472696275
00001d54: PUSH1 0x44
00001d56: DUP3
00001d57: ADD
00001d58: MSTORE
00001d59: PUSH2 0x7465
00001d5c: PUSH1 0xf0
00001d5e: SHL
00001d5f: PUSH1 0x64
00001d61: DUP3
00001d62: ADD
00001d63: MSTORE
00001d64: PUSH1 0x84
00001d66: ADD
00001d67: PUSH2 0x084d
00001d6a: JUMP
00001d6b: JUMPDEST
00001d6c: PUSH1 0x00
00001d6e: PUSH1 0x0b
00001d70: SSTORE
00001d71: PUSH3 0x0f4240
00001d75: PUSH2 0x1d80
00001d78: PUSH2 0x0ce4
00001d7b: DUP4
00001d7c: PUSH2 0x27ee
00001d7f: JUMP
00001d80: JUMPDEST
00001d81: PUSH2 0x1d8a
00001d84: SWAP2
00001d85: SWAP1
00001d86: PUSH2 0x28ae
00001d89: JUMP
00001d8a: JUMPDEST
00001d8b: SWAP2
00001d8c: POP
00001d8d: PUSH2 0x1d96
00001d90: DUP3
00001d91: DUP3
00001d92: PUSH2 0x2805
00001d95: JUMP
00001d96: JUMPDEST
00001d97: SWAP1
00001d98: POP
00001d99: PUSH1 0x00
00001d9b: PUSH2 0x2710
00001d9e: PUSH2 0x1da9
00001da1: PUSH2 0x0cbd
00001da4: DUP5
00001da5: PUSH2 0x27ee
00001da8: JUMP
00001da9: JUMPDEST
00001daa: PUSH2 0x1db3
00001dad: SWAP2
00001dae: SWAP1
00001daf: PUSH2 0x28ae
00001db2: JUMP
00001db3: JUMPDEST
00001db4: SWAP1
00001db5: POP
00001db6: PUSH1 0x00
00001db8: PUSH2 0x2710
00001dbb: PUSH2 0x1dc6
00001dbe: PUSH2 0x0a30
00001dc1: DUP6
00001dc2: PUSH2 0x27ee
00001dc5: JUMP
00001dc6: JUMPDEST
00001dc7: PUSH2 0x1dd0
00001dca: SWAP2
00001dcb: SWAP1
00001dcc: PUSH2 0x28ae
00001dcf: JUMP
00001dd0: JUMPDEST
00001dd1: SWAP1
00001dd2: POP
00001dd3: PUSH1 0x00
00001dd5: PUSH2 0x2710
00001dd8: PUSH2 0x1de3
00001ddb: PUSH2 0x087e
00001dde: DUP7
00001ddf: PUSH2 0x27ee
00001de2: JUMP
00001de3: JUMPDEST
00001de4: PUSH2 0x1ded
00001de7: SWAP2
00001de8: SWAP1
00001de9: PUSH2 0x28ae
00001dec: JUMP
00001ded: JUMPDEST
00001dee: SWAP1
00001def: POP
00001df0: DUP1
00001df1: PUSH2 0x1dfa
00001df4: DUP4
00001df5: DUP6
00001df6: PUSH2 0x2554
00001df9: JUMP
00001dfa: JUMPDEST
00001dfb: PUSH2 0x1e04
00001dfe: SWAP2
00001dff: SWAP1
00001e00: PUSH2 0x2554
00001e03: JUMP
00001e04: JUMPDEST
00001e05: PUSH2 0x1e0e
00001e08: SWAP1
00001e09: DUP6
00001e0a: PUSH2 0x2805
00001e0d: JUMP
00001e0e: JUMPDEST
00001e0f: SWAP6
00001e10: POP
00001e11: PUSH2 0x1e1b
00001e14: PUSH1 0x08
00001e16: DUP5
00001e17: PUSH2 0x2258
00001e1a: JUMP
00001e1b: JUMPDEST
00001e1c: PUSH2 0x1e26
00001e1f: PUSH1 0x58
00001e21: DUP4
00001e22: PUSH2 0x2258
00001e25: JUMP
00001e26: JUMPDEST
00001e27: PUSH2 0x1e32
00001e2a: PUSH2 0x0120
00001e2d: DUP3
00001e2e: PUSH2 0x2258
00001e31: JUMP
00001e32: JUMPDEST
00001e33: PUSH1 0x40
00001e35: MLOAD
00001e36: DUP5
00001e37: SWAP1
00001e38: CALLER
00001e39: SWAP1
00001e3a: PUSH32 0x55083a582b32208b745a21c8ce4f8d545be8cce1437f34637f08fc9d943eacb0
00001e5b: SWAP1
00001e5c: PUSH1 0x00
00001e5e: SWAP1
00001e5f: LOG3
00001e60: POP
00001e61: POP
00001e62: POP
00001e63: POP
00001e64: SWAP1
00001e65: SWAP2
00001e66: JUMP
00001e67: JUMPDEST
00001e68: PUSH2 0xffff
00001e6b: DUP4
00001e6c: AND
00001e6d: PUSH1 0x00
00001e6f: SWAP1
00001e70: DUP2
00001e71: MSTORE
00001e72: PUSH1 0x0f
00001e74: PUSH1 0x20
00001e76: MSTORE
00001e77: PUSH1 0x40
00001e79: DUP2
00001e7a: KECCAK256
00001e7b: SLOAD
00001e7c: PUSH4 0xffffffff
00001e81: SWAP1
00001e82: DUP2
00001e83: AND
00001e84: SWAP1
00001e85: DUP5
00001e86: AND
00001e87: LT
00001e88: ISZERO
00001e89: PUSH2 0x1e94
00001e8c: JUMPI
00001e8d: POP
00001e8e: PUSH1 0x00
00001e90: PUSH2 0x12a0
00001e93: JUMP
00001e94: JUMPDEST
00001e95: PUSH2 0x1e9d
00001e98: DUP5
00001e99: PUSH2 0x2284
00001e9c: JUMP
00001e9d: JUMPDEST
00001e9e: PUSH2 0xffff
00001ea1: DUP5
00001ea2: AND
00001ea3: PUSH1 0x00
00001ea5: SWAP1
00001ea6: DUP2
00001ea7: MSTORE
00001ea8: PUSH1 0x0d
00001eaa: PUSH1 0x20
00001eac: MSTORE
00001ead: PUSH1 0x40
00001eaf: DUP2
00001eb0: KECCAK256
00001eb1: SLOAD
00001eb2: SWAP1
00001eb3: DUP2
00001eb4: SWAP1
00001eb5: SUB
00001eb6: PUSH2 0x1ec3
00001eb9: JUMPI
00001eba: PUSH1 0x00
00001ebc: SWAP2
00001ebd: POP
00001ebe: POP
00001ebf: PUSH2 0x12a0
00001ec2: JUMP
00001ec3: JUMPDEST
00001ec4: PUSH2 0x1ecf
00001ec7: DUP6
00001ec8: DUP6
00001ec9: DUP6
00001eca: DUP5
00001ecb: PUSH2 0x2337
00001ece: JUMP
00001ecf: JUMPDEST
00001ed0: PUSH2 0xffff
00001ed3: DUP6
00001ed4: AND
00001ed5: PUSH1 0x00
00001ed7: DUP2
00001ed8: DUP2
00001ed9: MSTORE
00001eda: PUSH1 0x0d
00001edc: PUSH1 0x20
00001ede: MSTORE
00001edf: PUSH1 0x40
00001ee1: DUP1
00001ee2: DUP3
00001ee3: KECCAK256
00001ee4: DUP3
00001ee5: SWAP1
00001ee6: SSTORE
00001ee7: MLOAD
00001ee8: DUP4
00001ee9: SWAP3
00001eea: SWAP2
00001eeb: CALLER
00001eec: SWAP2
00001eed: PUSH32 0x330997f7612b0eba67ced5af32716e9afe967ad3b31a80bf6601294e5055feea
00001f0e: SWAP2
00001f0f: SWAP1
00001f10: LOG4
00001f11: POP
00001f12: PUSH1 0x01
00001f14: SWAP5
00001f15: SWAP4
00001f16: POP
00001f17: POP
00001f18: POP
00001f19: POP
00001f1a: JUMP
00001f1b: JUMPDEST
00001f1c: PUSH2 0xffff
00001f1f: DUP2
00001f20: AND
00001f21: PUSH1 0x00
00001f23: SWAP1
00001f24: DUP2
00001f25: MSTORE
00001f26: PUSH1 0x0e
00001f28: PUSH1 0x20
00001f2a: MSTORE
00001f2b: PUSH1 0x40
00001f2d: DUP2
00001f2e: KECCAK256
00001f2f: SLOAD
00001f30: DUP2
00001f31: SWAP1
00001f32: DUP2
00001f33: SWAP1
00001f34: PUSH4 0xffffffff
00001f39: AND
00001f3a: PUSH2 0x1f43
00001f3d: DUP7
00001f3e: DUP7
00001f3f: PUSH2 0x0b2d
00001f42: JUMP
00001f43: JUMPDEST
00001f44: PUSH1 0x01
00001f46: PUSH1 0x01
00001f48: PUSH1 0xa0
00001f4a: SHL
00001f4b: SUB
00001f4c: DUP9
00001f4d: AND
00001f4e: PUSH1 0x00
00001f50: SWAP1
00001f51: DUP2
00001f52: MSTORE
00001f53: PUSH1 0x15
00001f55: PUSH1 0x20
00001f57: MSTORE
00001f58: PUSH1 0x40
00001f5a: SWAP1
00001f5b: KECCAK256
00001f5c: SLOAD
00001f5d: PUSH1 0x01
00001f5f: PUSH1 0x01
00001f61: PUSH1 0x60
00001f63: SHL
00001f64: SUB
00001f65: SWAP1
00001f66: SWAP2
00001f67: AND
00001f68: SWAP5
00001f69: POP
00001f6a: SWAP1
00001f6b: SWAP3
00001f6c: POP
00001f6d: DUP3
00001f6e: JUMPDEST
00001f6f: DUP3
00001f70: PUSH4 0xffffffff
00001f75: AND
00001f76: DUP2
00001f77: PUSH4 0xffffffff
00001f7c: AND
00001f7d: GT
00001f7e: PUSH2 0x208f
00001f81: JUMPI
00001f82: PUSH2 0xffff
00001f85: DUP8
00001f86: AND
00001f87: PUSH1 0x00
00001f89: SWAP1
00001f8a: DUP2
00001f8b: MSTORE
00001f8c: PUSH1 0x10
00001f8e: PUSH1 0x20
00001f90: SWAP1
00001f91: DUP2
00001f92: MSTORE
00001f93: PUSH1 0x40
00001f95: DUP1
00001f96: DUP4
00001f97: KECCAK256
00001f98: PUSH4 0xffffffff
00001f9d: DUP6
00001f9e: DUP2
00001f9f: AND
00001fa0: DUP6
00001fa1: MSTORE
00001fa2: SWAP3
00001fa3: MSTORE
00001fa4: DUP3
00001fa5: KECCAK256
00001fa6: PUSH1 0x01
00001fa8: DUP2
00001fa9: ADD
00001faa: SLOAD
00001fab: SWAP1
00001fac: SLOAD
00001fad: SWAP1
00001fae: SWAP3
00001faf: SWAP2
00001fb0: AND
00001fb1: SWAP1
00001fb2: DUP8
00001fb3: JUMPDEST
00001fb4: DUP6
00001fb5: DUP2
00001fb6: GT
00001fb7: PUSH2 0x2030
00001fba: JUMPI
00001fbb: PUSH1 0x01
00001fbd: PUSH1 0x01
00001fbf: PUSH1 0xa0
00001fc1: SHL
00001fc2: SUB
00001fc3: DUP13
00001fc4: AND
00001fc5: PUSH1 0x00
00001fc7: SWAP1
00001fc8: DUP2
00001fc9: MSTORE
00001fca: PUSH1 0x16
00001fcc: PUSH1 0x20
00001fce: SWAP1
00001fcf: DUP2
00001fd0: MSTORE
00001fd1: PUSH1 0x40
00001fd3: DUP1
00001fd4: DUP4
00001fd5: KECCAK256
00001fd6: DUP5
00001fd7: DUP5
00001fd8: MSTORE
00001fd9: SWAP1
00001fda: SWAP2
00001fdb: MSTORE
00001fdc: SWAP1
00001fdd: KECCAK256
00001fde: SLOAD
00001fdf: PUSH4 0xffffffff
00001fe4: AND
00001fe5: DUP4
00001fe6: LT
00001fe7: PUSH2 0x2018
00001fea: JUMPI
00001feb: PUSH1 0x01
00001fed: PUSH1 0x01
00001fef: PUSH1 0xa0
00001ff1: SHL
00001ff2: SUB
00001ff3: DUP13
00001ff4: AND
00001ff5: PUSH1 0x00
00001ff7: SWAP1
00001ff8: DUP2
00001ff9: MSTORE
00001ffa: PUSH1 0x16
00001ffc: PUSH1 0x20
00001ffe: SWAP1
00001fff: DUP2
00002000: MSTORE
00002001: PUSH1 0x40
00002003: DUP1
00002004: DUP4
00002005: KECCAK256
00002006: DUP5
00002007: DUP5
00002008: MSTORE
00002009: SWAP1
0000200a: SWAP2
0000200b: MSTORE
0000200c: SWAP1
0000200d: KECCAK256
0000200e: PUSH1 0x01
00002010: ADD
00002011: SLOAD
00002012: SWAP2
00002013: POP
00002014: PUSH2 0x201d
00002017: JUMP
00002018: JUMPDEST
00002019: PUSH2 0x2030
0000201c: JUMP
0000201d: JUMPDEST
0000201e: SWAP8
0000201f: POP
00002020: DUP8
00002021: PUSH2 0x2029
00002024: DUP2
00002025: PUSH2 0x27d5
00002028: JUMP
00002029: JUMPDEST
0000202a: SWAP1
0000202b: POP
0000202c: PUSH2 0x1fb3
0000202f: JUMP
00002030: JUMPDEST
00002031: POP
00002032: DUP3
00002033: ISZERO
00002034: DUP1
00002035: ISZERO
00002036: SWAP1
00002037: PUSH2 0x203f
0000203a: JUMPI
0000203b: POP
0000203c: DUP1
0000203d: ISZERO
0000203e: ISZERO
0000203f: JUMPDEST
00002040: ISZERO
00002041: PUSH2 0x206e
00002044: JUMPI
00002045: PUSH8 0x0de0b6b3a7640000
0000204e: PUSH2 0x2057
00002051: DUP5
00002052: DUP4
00002053: PUSH2 0x27ee
00002056: JUMP
00002057: JUMPDEST
00002058: PUSH2 0x2061
0000205b: SWAP2
0000205c: SWAP1
0000205d: PUSH2 0x28ae
00002060: JUMP
00002061: JUMPDEST
00002062: PUSH2 0x206b
00002065: SWAP1
00002066: DUP11
00002067: PUSH2 0x2554
0000206a: JUMP
0000206b: JUMPDEST
0000206c: SWAP9
0000206d: POP
0000206e: JUMPDEST
0000206f: PUSH2 0x2079
00002072: DUP5
00002073: PUSH1 0x01
00002075: PUSH2 0x292c
00002078: JUMP
00002079: JUMPDEST
0000207a: SWAP7
0000207b: POP
0000207c: POP
0000207d: POP
0000207e: POP
0000207f: DUP1
00002080: PUSH2 0x2088
00002083: SWAP1
00002084: PUSH2 0x28e6
00002087: JUMP
00002088: JUMPDEST
00002089: SWAP1
0000208a: POP
0000208b: PUSH2 0x1f6e
0000208e: JUMP
0000208f: JUMPDEST
00002090: POP
00002091: POP
00002092: POP
00002093: SWAP3
00002094: POP
00002095: SWAP3
00002096: POP
00002097: SWAP3
00002098: JUMP
00002099: JUMPDEST
0000209a: PUSH1 0x00
0000209c: PUSH2 0x20ae
0000209f: PUSH1 0x01
000020a1: PUSH1 0x01
000020a3: PUSH1 0xa0
000020a5: SHL
000020a6: SUB
000020a7: DUP5
000020a8: AND
000020a9: DUP4
000020aa: PUSH2 0x23e0
000020ad: JUMP
000020ae: JUMPDEST
000020af: SWAP1
000020b0: POP
000020b1: DUP1
000020b2: MLOAD
000020b3: PUSH1 0x00
000020b5: EQ
000020b6: ISZERO
000020b7: DUP1
000020b8: ISZERO
000020b9: PUSH2 0x20d3
000020bc: JUMPI
000020bd: POP
000020be: DUP1
000020bf: DUP1
000020c0: PUSH1 0x20
000020c2: ADD
000020c3: SWAP1
000020c4: MLOAD
000020c5: DUP2
000020c6: ADD
000020c7: SWAP1
000020c8: PUSH2 0x20d1
000020cb: SWAP2
000020cc: SWAP1
000020cd: PUSH2 0x2977
000020d0: JUMP
000020d1: JUMPDEST
000020d2: ISZERO
000020d3: JUMPDEST
000020d4: ISZERO
000020d5: PUSH2 0x1bed
000020d8: JUMPI
000020d9: PUSH1 0x40
000020db: MLOAD
000020dc: PUSH4 0x5274afe7
000020e1: PUSH1 0xe0
000020e3: SHL
000020e4: DUP2
000020e5: MSTORE
000020e6: PUSH1 0x01
000020e8: PUSH1 0x01
000020ea: PUSH1 0xa0
000020ec: SHL
000020ed: SUB
000020ee: DUP5
000020ef: AND
000020f0: PUSH1 0x04
000020f2: DUP3
000020f3: ADD
000020f4: MSTORE
000020f5: PUSH1 0x24
000020f7: ADD
000020f8: PUSH2 0x084d
000020fb: JUMP
000020fc: JUMPDEST
000020fd: PUSH1 0x01
000020ff: PUSH1 0x01
00002101: PUSH1 0xa0
00002103: SHL
00002104: SUB
00002105: DUP5
00002106: AND
00002107: PUSH1 0x00
00002109: SWAP1
0000210a: DUP2
0000210b: MSTORE
0000210c: PUSH1 0x11
0000210e: PUSH1 0x20
00002110: SWAP1
00002111: DUP2
00002112: MSTORE
00002113: PUSH1 0x40
00002115: DUP1
00002116: DUP4
00002117: KECCAK256
00002118: PUSH2 0xffff
0000211b: DUP8
0000211c: AND
0000211d: DUP5
0000211e: MSTORE
0000211f: SWAP1
00002120: SWAP2
00002121: MSTORE
00002122: SWAP1
00002123: KECCAK256
00002124: SLOAD
00002125: PUSH4 0xffffffff
0000212a: DUP4
0000212b: DUP2
0000212c: AND
0000212d: SWAP2
0000212e: AND
0000212f: EQ
00002130: PUSH2 0x216e
00002133: JUMPI
00002134: PUSH1 0x01
00002136: PUSH1 0x01
00002138: PUSH1 0xa0
0000213a: SHL
0000213b: SUB
0000213c: DUP5
0000213d: AND
0000213e: PUSH1 0x00
00002140: SWAP1
00002141: DUP2
00002142: MSTORE
00002143: PUSH1 0x11
00002145: PUSH1 0x20
00002147: SWAP1
00002148: DUP2
00002149: MSTORE
0000214a: PUSH1 0x40
0000214c: DUP1
0000214d: DUP4
0000214e: KECCAK256
0000214f: PUSH2 0xffff
00002152: DUP8
00002153: AND
00002154: DUP5
00002155: MSTORE
00002156: SWAP1
00002157: SWAP2
00002158: MSTORE
00002159: SWAP1
0000215a: KECCAK256
0000215b: DUP1
0000215c: SLOAD
0000215d: PUSH4 0xffffffff
00002162: NOT
00002163: AND
00002164: PUSH4 0xffffffff
00002169: DUP5
0000216a: AND
0000216b: OR
0000216c: SWAP1
0000216d: SSTORE
0000216e: JUMPDEST
0000216f: PUSH1 0x01
00002171: PUSH1 0x01
00002173: PUSH1 0xa0
00002175: SHL
00002176: SUB
00002177: DUP5
00002178: AND
00002179: PUSH1 0x00
0000217b: SWAP1
0000217c: DUP2
0000217d: MSTORE
0000217e: PUSH1 0x11
00002180: PUSH1 0x20
00002182: SWAP1
00002183: DUP2
00002184: MSTORE
00002185: PUSH1 0x40
00002187: DUP1
00002188: DUP4
00002189: KECCAK256
0000218a: PUSH2 0xffff
0000218d: DUP8
0000218e: AND
0000218f: DUP5
00002190: MSTORE
00002191: SWAP1
00002192: SWAP2
00002193: MSTORE
00002194: SWAP1
00002195: KECCAK256
00002196: SLOAD
00002197: PUSH5 0x0100000000
0000219d: SWAP1
0000219e: DIV
0000219f: PUSH1 0x01
000021a1: PUSH1 0x01
000021a3: PUSH1 0x60
000021a5: SHL
000021a6: SUB
000021a7: AND
000021a8: DUP2
000021a9: EQ
000021aa: PUSH2 0x192c
000021ad: JUMPI
000021ae: PUSH1 0x01
000021b0: PUSH1 0x01
000021b2: PUSH1 0xa0
000021b4: SHL
000021b5: SUB
000021b6: DUP5
000021b7: AND
000021b8: PUSH1 0x00
000021ba: SWAP1
000021bb: DUP2
000021bc: MSTORE
000021bd: PUSH1 0x11
000021bf: PUSH1 0x20
000021c1: SWAP1
000021c2: DUP2
000021c3: MSTORE
000021c4: PUSH1 0x40
000021c6: DUP1
000021c7: DUP4
000021c8: KECCAK256
000021c9: PUSH2 0xffff
000021cc: DUP8
000021cd: AND
000021ce: DUP5
000021cf: MSTORE
000021d0: SWAP1
000021d1: SWAP2
000021d2: MSTORE
000021d3: SWAP1
000021d4: KECCAK256
000021d5: DUP1
000021d6: SLOAD
000021d7: PUSH5 0x0100000000
000021dd: PUSH8 0xffffffffffffffff
000021e6: DUP5
000021e7: AND
000021e8: MUL
000021e9: PUSH16 0xffffffffffffffffffffffff00000000
000021fa: NOT
000021fb: SWAP1
000021fc: SWAP2
000021fd: AND
000021fe: OR
000021ff: SWAP1
00002200: SSTORE
00002201: POP
00002202: POP
00002203: POP
00002204: POP
00002205: JUMP
00002206: JUMPDEST
00002207: PUSH1 0x01
00002209: DUP1
0000220a: SLOAD
0000220b: PUSH1 0x01
0000220d: PUSH1 0x01
0000220f: PUSH1 0xa0
00002211: SHL
00002212: SUB
00002213: DUP4
00002214: DUP2
00002215: AND
00002216: PUSH1 0x01
00002218: PUSH1 0x01
0000221a: PUSH1 0xa0
0000221c: SHL
0000221d: SUB
0000221e: NOT
0000221f: DUP4
00002220: AND
00002221: DUP2
00002222: OR
00002223: SWAP1
00002224: SWAP4
00002225: SSTORE
00002226: PUSH1 0x40
00002228: MLOAD
00002229: SWAP2
0000222a: AND
0000222b: SWAP2
0000222c: SWAP1
0000222d: DUP3
0000222e: SWAP1
0000222f: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00002250: SWAP1
00002251: PUSH1 0x00
00002253: SWAP1
00002254: LOG3
00002255: POP
00002256: POP
00002257: JUMP
00002258: JUMPDEST
00002259: PUSH2 0xffff
0000225c: DUP3
0000225d: AND
0000225e: PUSH1 0x00
00002260: SWAP1
00002261: DUP2
00002262: MSTORE
00002263: PUSH1 0x0d
00002265: PUSH1 0x20
00002267: MSTORE
00002268: PUSH1 0x40
0000226a: DUP2
0000226b: KECCAK256
0000226c: DUP1
0000226d: SLOAD
0000226e: DUP4
0000226f: SWAP3
00002270: SWAP1
00002271: PUSH2 0x227b
00002274: SWAP1
00002275: DUP5
00002276: SWAP1
00002277: PUSH2 0x2554
0000227a: JUMP
0000227b: JUMPDEST
0000227c: SWAP1
0000227d: SWAP2
0000227e: SSTORE
0000227f: POP
00002280: POP
00002281: POP
00002282: POP
00002283: JUMP
00002284: JUMPDEST
00002285: PUSH2 0xffff
00002288: DUP2
00002289: AND
0000228a: PUSH1 0x00
0000228c: SWAP1
0000228d: DUP2
0000228e: MSTORE
0000228f: PUSH1 0x0f
00002291: PUSH1 0x20
00002293: MSTORE
00002294: PUSH1 0x40
00002296: SWAP1
00002297: KECCAK256
00002298: SLOAD
00002299: PUSH1 0x04
0000229b: SLOAD
0000229c: PUSH4 0xffffffff
000022a1: SWAP2
000022a2: DUP3
000022a3: AND
000022a4: SWAP2
000022a5: PUSH1 0x01
000022a7: PUSH1 0xa0
000022a9: SHL
000022aa: SWAP1
000022ab: SWAP2
000022ac: DIV
000022ad: AND
000022ae: DUP2
000022af: DUP2
000022b0: LT
000022b1: PUSH2 0x1bed
000022b4: JUMPI
000022b5: PUSH1 0x00
000022b7: PUSH2 0xffff
000022ba: DUP5
000022bb: AND
000022bc: PUSH2 0x22c5
000022bf: DUP5
000022c0: DUP5
000022c1: PUSH2 0x28c2
000022c4: JUMP
000022c5: JUMPDEST
000022c6: PUSH2 0x22cf
000022c9: SWAP2
000022ca: SWAP1
000022cb: PUSH2 0x2999
000022ce: JUMP
000022cf: JUMPDEST
000022d0: PUSH2 0x22da
000022d3: SWAP1
000022d4: PUSH1 0x01
000022d6: PUSH2 0x292c
000022d9: JUMP
000022da: JUMPDEST
000022db: SWAP1
000022dc: POP
000022dd: PUSH2 0x22ea
000022e0: DUP2
000022e1: PUSH2 0xffff
000022e4: DUP7
000022e5: AND
000022e6: PUSH2 0x29bc
000022e9: JUMP
000022ea: JUMPDEST
000022eb: PUSH2 0xffff
000022ee: DUP6
000022ef: AND
000022f0: PUSH1 0x00
000022f2: SWAP1
000022f3: DUP2
000022f4: MSTORE
000022f5: PUSH1 0x0f
000022f7: PUSH1 0x20
000022f9: MSTORE
000022fa: PUSH1 0x40
000022fc: DUP2
000022fd: KECCAK256
000022fe: DUP1
000022ff: SLOAD
00002300: SWAP1
00002301: SWAP2
00002302: SWAP1
00002303: PUSH2 0x2313
00002306: SWAP1
00002307: DUP5
00002308: SWAP1
00002309: PUSH4 0xffffffff
0000230e: AND
0000230f: PUSH2 0x292c
00002312: JUMP
00002313: JUMPDEST
00002314: SWAP3
00002315: POP
00002316: PUSH2 0x0100
00002319: EXP
0000231a: DUP2
0000231b: SLOAD
0000231c: DUP2
0000231d: PUSH4 0xffffffff
00002322: MUL
00002323: NOT
00002324: AND
00002325: SWAP1
00002326: DUP4
00002327: PUSH4 0xffffffff
0000232c: AND
0000232d: MUL
0000232e: OR
0000232f: SWAP1
00002330: SSTORE
00002331: POP
00002332: POP
00002333: POP
00002334: POP
00002335: POP
00002336: JUMP
00002337: JUMPDEST
00002338: PUSH2 0xffff
0000233b: DUP5
0000233c: AND
0000233d: PUSH1 0x00
0000233f: SWAP1
00002340: DUP2
00002341: MSTORE
00002342: PUSH1 0x0e
00002344: PUSH1 0x20
00002346: MSTORE
00002347: PUSH1 0x40
00002349: DUP2
0000234a: KECCAK256
0000234b: DUP1
0000234c: SLOAD
0000234d: DUP3
0000234e: SWAP1
0000234f: PUSH2 0x235d
00002352: SWAP1
00002353: PUSH4 0xffffffff
00002358: AND
00002359: PUSH2 0x28e6
0000235c: JUMP
0000235d: JUMPDEST
0000235e: SWAP2
0000235f: SWAP1
00002360: PUSH2 0x0100
00002363: EXP
00002364: DUP2
00002365: SLOAD
00002366: DUP2
00002367: PUSH4 0xffffffff
0000236c: MUL
0000236d: NOT
0000236e: AND
0000236f: SWAP1
00002370: DUP4
00002371: PUSH4 0xffffffff
00002376: AND
00002377: MUL
00002378: OR
00002379: SWAP1
0000237a: SSTORE
0000237b: SWAP1
0000237c: POP
0000237d: DUP3
0000237e: PUSH8 0x0de0b6b3a7640000
00002387: DUP4
00002388: PUSH2 0x2391
0000238b: SWAP2
0000238c: SWAP1
0000238d: PUSH2 0x27ee
00002390: JUMP
00002391: JUMPDEST
00002392: PUSH2 0x239b
00002395: SWAP2
00002396: SWAP1
00002397: PUSH2 0x28ae
0000239a: JUMP
0000239b: JUMPDEST
0000239c: PUSH2 0xffff
0000239f: SWAP6
000023a0: SWAP1
000023a1: SWAP6
000023a2: AND
000023a3: PUSH1 0x00
000023a5: SWAP1
000023a6: DUP2
000023a7: MSTORE
000023a8: PUSH1 0x10
000023aa: PUSH1 0x20
000023ac: SWAP1
000023ad: DUP2
000023ae: MSTORE
000023af: PUSH1 0x40
000023b1: DUP1
000023b2: DUP4
000023b3: KECCAK256
000023b4: PUSH4 0xffffffff
000023b9: SWAP5
000023ba: DUP6
000023bb: AND
000023bc: DUP5
000023bd: MSTORE
000023be: SWAP1
000023bf: SWAP2
000023c0: MSTORE
000023c1: SWAP1
000023c2: KECCAK256
000023c3: PUSH1 0x01
000023c5: DUP2
000023c6: ADD
000023c7: SWAP6
000023c8: SWAP1
000023c9: SWAP6
000023ca: SSTORE
000023cb: DUP5
000023cc: SLOAD
000023cd: PUSH4 0xffffffff
000023d2: NOT
000023d3: AND
000023d4: SWAP4
000023d5: AND
000023d6: SWAP3
000023d7: SWAP1
000023d8: SWAP3
000023d9: OR
000023da: SWAP1
000023db: SWAP3
000023dc: SSTORE
000023dd: POP
000023de: POP
000023df: JUMP
000023e0: JUMPDEST
000023e1: PUSH1 0x60
000023e3: PUSH2 0x12a0
000023e6: DUP4
000023e7: DUP4
000023e8: PUSH1 0x00
000023ea: DUP5
000023eb: PUSH1 0x00
000023ed: DUP1
000023ee: DUP6
000023ef: PUSH1 0x01
000023f1: PUSH1 0x01
000023f3: PUSH1 0xa0
000023f5: SHL
000023f6: SUB
000023f7: AND
000023f8: DUP5
000023f9: DUP7
000023fa: PUSH1 0x40
000023fc: MLOAD
000023fd: PUSH2 0x2406
00002400: SWAP2
00002401: SWAP1
00002402: PUSH2 0x29e4
00002405: JUMP
00002406: JUMPDEST
00002407: PUSH1 0x00
00002409: PUSH1 0x40
0000240b: MLOAD
0000240c: DUP1
0000240d: DUP4
0000240e: SUB
0000240f: DUP2
00002410: DUP6
00002411: DUP8
00002412: GAS
00002413: CALL
00002414: SWAP3
00002415: POP
00002416: POP
00002417: POP
00002418: RETURNDATASIZE
00002419: DUP1
0000241a: PUSH1 0x00
0000241c: DUP2
0000241d: EQ
0000241e: PUSH2 0x2443
00002421: JUMPI
00002422: PUSH1 0x40
00002424: MLOAD
00002425: SWAP2
00002426: POP
00002427: PUSH1 0x1f
00002429: NOT
0000242a: PUSH1 0x3f
0000242c: RETURNDATASIZE
0000242d: ADD
0000242e: AND
0000242f: DUP3
00002430: ADD
00002431: PUSH1 0x40
00002433: MSTORE
00002434: RETURNDATASIZE
00002435: DUP3
00002436: MSTORE
00002437: RETURNDATASIZE
00002438: PUSH1 0x00
0000243a: PUSH1 0x20
0000243c: DUP5
0000243d: ADD
0000243e: RETURNDATACOPY
0000243f: PUSH2 0x2448
00002442: JUMP
00002443: JUMPDEST
00002444: PUSH1 0x60
00002446: SWAP2
00002447: POP
00002448: JUMPDEST
00002449: POP
0000244a: SWAP2
0000244b: POP
0000244c: SWAP2
0000244d: POP
0000244e: PUSH2 0x2458
00002451: DUP7
00002452: DUP4
00002453: DUP4
00002454: PUSH2 0x2462
00002457: JUMP
00002458: JUMPDEST
00002459: SWAP7
0000245a: SWAP6
0000245b: POP
0000245c: POP
0000245d: POP
0000245e: POP
0000245f: POP
00002460: POP
00002461: JUMP
00002462: JUMPDEST
00002463: PUSH1 0x60
00002465: DUP3
00002466: PUSH2 0x2477
00002469: JUMPI
0000246a: PUSH2 0x2472
0000246d: DUP3
0000246e: PUSH2 0x24be
00002471: JUMP
00002472: JUMPDEST
00002473: PUSH2 0x12a0
00002476: JUMP
00002477: JUMPDEST
00002478: DUP2
00002479: MLOAD
0000247a: ISZERO
0000247b: DUP1
0000247c: ISZERO
0000247d: PUSH2 0x248e
00002480: JUMPI
00002481: POP
00002482: PUSH1 0x01
00002484: PUSH1 0x01
00002486: PUSH1 0xa0
00002488: SHL
00002489: SUB
0000248a: DUP5
0000248b: AND
0000248c: EXTCODESIZE
0000248d: ISZERO
0000248e: JUMPDEST
0000248f: ISZERO
00002490: PUSH2 0x24b7
00002493: JUMPI
00002494: PUSH1 0x40
00002496: MLOAD
00002497: PUSH4 0x9996b315
0000249c: PUSH1 0xe0
0000249e: SHL
0000249f: DUP2
000024a0: MSTORE
000024a1: PUSH1 0x01
000024a3: PUSH1 0x01
000024a5: PUSH1 0xa0
000024a7: SHL
000024a8: SUB
000024a9: DUP6
000024aa: AND
000024ab: PUSH1 0x04
000024ad: DUP3
000024ae: ADD
000024af: MSTORE
000024b0: PUSH1 0x24
000024b2: ADD
000024b3: PUSH2 0x084d
000024b6: JUMP
000024b7: JUMPDEST
000024b8: POP
000024b9: DUP1
000024ba: PUSH2 0x12a0
000024bd: JUMP
000024be: JUMPDEST
000024bf: DUP1
000024c0: MLOAD
000024c1: ISZERO
000024c2: PUSH2 0x24ce
000024c5: JUMPI
000024c6: DUP1
000024c7: MLOAD
000024c8: DUP1
000024c9: DUP3
000024ca: PUSH1 0x20
000024cc: ADD
000024cd: REVERT
000024ce: JUMPDEST
000024cf: PUSH1 0x40
000024d1: MLOAD
000024d2: PUSH4 0x0a12f521
000024d7: PUSH1 0xe1
000024d9: SHL
000024da: DUP2
000024db: MSTORE
000024dc: PUSH1 0x04
000024de: ADD
000024df: PUSH1 0x40
000024e1: MLOAD
000024e2: DUP1
000024e3: SWAP2
000024e4: SUB
000024e5: SWAP1
000024e6: REVERT
000024e7: JUMPDEST
000024e8: PUSH1 0x40
000024ea: DUP1
000024eb: MLOAD
000024ec: PUSH1 0xc0
000024ee: DUP2
000024ef: ADD
000024f0: DUP3
000024f1: MSTORE
000024f2: PUSH1 0x00
000024f4: DUP1
000024f5: DUP3
000024f6: MSTORE
000024f7: PUSH1 0x20
000024f9: DUP3
000024fa: ADD
000024fb: DUP2
000024fc: SWAP1
000024fd: MSTORE
000024fe: SWAP2
000024ff: DUP2
00002500: ADD
00002501: DUP3
00002502: SWAP1
00002503: MSTORE
00002504: PUSH1 0x60
00002506: DUP2
00002507: ADD
00002508: DUP3
00002509: SWAP1
0000250a: MSTORE
0000250b: PUSH1 0x80
0000250d: DUP2
0000250e: ADD
0000250f: DUP3
00002510: SWAP1
00002511: MSTORE
00002512: SWAP1
00002513: PUSH1 0xa0
00002515: DUP3
00002516: ADD
00002517: SWAP1
00002518: JUMPDEST
00002519: SWAP1
0000251a: MSTORE
0000251b: SWAP1
0000251c: JUMP
0000251d: JUMPDEST
0000251e: PUSH1 0x40
00002520: MLOAD
00002521: DUP1
00002522: PUSH1 0x60
00002524: ADD
00002525: PUSH1 0x40
00002527: MSTORE
00002528: DUP1
00002529: PUSH1 0x00
0000252b: DUP2
0000252c: MSTORE
0000252d: PUSH1 0x20
0000252f: ADD
00002530: PUSH1 0x00
00002532: DUP2
00002533: MSTORE
00002534: PUSH1 0x20
00002536: ADD
00002537: PUSH2 0x2518
0000253a: PUSH2 0x24e7
0000253d: JUMP
0000253e: JUMPDEST
0000253f: PUSH4 0x4e487b71
00002544: PUSH1 0xe0
00002546: SHL
00002547: PUSH1 0x00
00002549: MSTORE
0000254a: PUSH1 0x11
0000254c: PUSH1 0x04
0000254e: MSTORE
0000254f: PUSH1 0x24
00002551: PUSH1 0x00
00002553: REVERT
00002554: JUMPDEST
00002555: DUP1
00002556: DUP3
00002557: ADD
00002558: DUP1
00002559: DUP3
0000255a: GT
0000255b: ISZERO
0000255c: PUSH2 0x0b27
0000255f: JUMPI
00002560: PUSH2 0x0b27
00002563: PUSH2 0x253e
00002566: JUMP
00002567: JUMPDEST
00002568: DUP1
00002569: CALLDATALOAD
0000256a: PUSH1 0x01
0000256c: PUSH1 0x01
0000256e: PUSH1 0xa0
00002570: SHL
00002571: SUB
00002572: DUP2
00002573: AND
00002574: DUP2
00002575: EQ
00002576: PUSH2 0x257e
00002579: JUMPI
0000257a: PUSH1 0x00
0000257c: DUP1
0000257d: REVERT
0000257e: JUMPDEST
0000257f: SWAP2
00002580: SWAP1
00002581: POP
00002582: JUMP
00002583: JUMPDEST
00002584: PUSH1 0x00
00002586: DUP1
00002587: PUSH1 0x40
00002589: DUP4
0000258a: DUP6
0000258b: SUB
0000258c: SLT
0000258d: ISZERO
0000258e: PUSH2 0x2596
00002591: JUMPI
00002592: PUSH1 0x00
00002594: DUP1
00002595: REVERT
00002596: JUMPDEST
00002597: PUSH2 0x259f
0000259a: DUP4
0000259b: PUSH2 0x2567
0000259e: JUMP
0000259f: JUMPDEST
000025a0: SWAP5
000025a1: PUSH1 0x20
000025a3: SWAP4
000025a4: SWAP1
000025a5: SWAP4
000025a6: ADD
000025a7: CALLDATALOAD
000025a8: SWAP4
000025a9: POP
000025aa: POP
000025ab: POP
000025ac: JUMP
000025ad: JUMPDEST
000025ae: PUSH1 0x00
000025b0: DUP1
000025b1: PUSH1 0x40
000025b3: DUP4
000025b4: DUP6
000025b5: SUB
000025b6: SLT
000025b7: ISZERO
000025b8: PUSH2 0x25c0
000025bb: JUMPI
000025bc: PUSH1 0x00
000025be: DUP1
000025bf: REVERT
000025c0: JUMPDEST
000025c1: POP
000025c2: POP
000025c3: DUP1
000025c4: CALLDATALOAD
000025c5: SWAP3
000025c6: PUSH1 0x20
000025c8: SWAP1
000025c9: SWAP2
000025ca: ADD
000025cb: CALLDATALOAD
000025cc: SWAP2
000025cd: POP
000025ce: JUMP
000025cf: JUMPDEST
000025d0: PUSH4 0x4e487b71
000025d5: PUSH1 0xe0
000025d7: SHL
000025d8: PUSH1 0x00
000025da: MSTORE
000025db: PUSH1 0x21
000025dd: PUSH1 0x04
000025df: MSTORE
000025e0: PUSH1 0x24
000025e2: PUSH1 0x00
000025e4: REVERT
000025e5: JUMPDEST
000025e6: PUSH1 0x02
000025e8: DUP2
000025e9: LT
000025ea: PUSH2 0x0e73
000025ed: JUMPI
000025ee: PUSH4 0x4e487b71
000025f3: PUSH1 0xe0
000025f5: SHL
000025f6: PUSH1 0x00
000025f8: MSTORE
000025f9: PUSH1 0x21
000025fb: PUSH1 0x04
000025fd: MSTORE
000025fe: PUSH1 0x24
00002600: PUSH1 0x00
00002602: REVERT
00002603: JUMPDEST
00002604: DUP1
00002605: MLOAD
00002606: DUP3
00002607: MSTORE
00002608: PUSH1 0x20
0000260a: DUP2
0000260b: ADD
0000260c: MLOAD
0000260d: PUSH1 0x20
0000260f: DUP4
00002610: ADD
00002611: MSTORE
00002612: PUSH2 0xffff
00002615: PUSH1 0x40
00002617: DUP3
00002618: ADD
00002619: MLOAD
0000261a: AND
0000261b: PUSH1 0x40
0000261d: DUP4
0000261e: ADD
0000261f: MSTORE
00002620: PUSH1 0x60
00002622: DUP2
00002623: ADD
00002624: MLOAD
00002625: PUSH4 0xffffffff
0000262a: DUP1
0000262b: DUP3
0000262c: AND
0000262d: PUSH1 0x60
0000262f: DUP6
00002630: ADD
00002631: MSTORE
00002632: DUP1
00002633: PUSH1 0x80
00002635: DUP5
00002636: ADD
00002637: MLOAD
00002638: AND
00002639: PUSH1 0x80
0000263b: DUP6
0000263c: ADD
0000263d: MSTORE
0000263e: POP
0000263f: POP
00002640: PUSH1 0xa0
00002642: DUP2
00002643: ADD
00002644: MLOAD
00002645: PUSH2 0x264d
00002648: DUP2
00002649: PUSH2 0x25e5
0000264c: JUMP
0000264d: JUMPDEST
0000264e: DUP1
0000264f: PUSH1 0xa0
00002651: DUP5
00002652: ADD
00002653: MSTORE
00002654: POP
00002655: POP
00002656: POP
00002657: JUMP
00002658: JUMPDEST
00002659: PUSH1 0xc0
0000265b: DUP2
0000265c: ADD
0000265d: PUSH2 0x0b27
00002660: DUP3
00002661: DUP5
00002662: PUSH2 0x2603
00002665: JUMP
00002666: JUMPDEST
00002667: DUP1
00002668: CALLDATALOAD
00002669: PUSH2 0xffff
0000266c: DUP2
0000266d: AND
0000266e: DUP2
0000266f: EQ
00002670: PUSH2 0x257e
00002673: JUMPI
00002674: PUSH1 0x00
00002676: DUP1
00002677: REVERT
00002678: JUMPDEST
00002679: PUSH1 0x00
0000267b: DUP1
0000267c: PUSH1 0x40
0000267e: DUP4
0000267f: DUP6
00002680: SUB
00002681: SLT
00002682: ISZERO
00002683: PUSH2 0x268b
00002686: JUMPI
00002687: PUSH1 0x00
00002689: DUP1
0000268a: REVERT
0000268b: JUMPDEST
0000268c: PUSH2 0x2694
0000268f: DUP4
00002690: PUSH2 0x2567
00002693: JUMP
00002694: JUMPDEST
00002695: SWAP2
00002696: POP
00002697: PUSH2 0x26a2
0000269a: PUSH1 0x20
0000269c: DUP5
0000269d: ADD
0000269e: PUSH2 0x2666
000026a1: JUMP
000026a2: JUMPDEST
000026a3: SWAP1
000026a4: POP
000026a5: SWAP3
000026a6: POP
000026a7: SWAP3
000026a8: SWAP1
000026a9: POP
000026aa: JUMP
000026ab: JUMPDEST
000026ac: PUSH1 0x00
000026ae: DUP1
000026af: PUSH1 0x00
000026b1: PUSH1 0x60
000026b3: DUP5
000026b4: DUP7
000026b5: SUB
000026b6: SLT
000026b7: ISZERO
000026b8: PUSH2 0x26c0
000026bb: JUMPI
000026bc: PUSH1 0x00
000026be: DUP1
000026bf: REVERT
000026c0: JUMPDEST
000026c1: PUSH2 0x26c9
000026c4: DUP5
000026c5: PUSH2 0x2567
000026c8: JUMP
000026c9: JUMPDEST
000026ca: SWAP6
000026cb: PUSH1 0x20
000026cd: DUP6
000026ce: ADD
000026cf: CALLDATALOAD
000026d0: SWAP6
000026d1: POP
000026d2: PUSH1 0x40
000026d4: SWAP1
000026d5: SWAP5
000026d6: ADD
000026d7: CALLDATALOAD
000026d8: SWAP4
000026d9: SWAP3
000026da: POP
000026db: POP
000026dc: POP
000026dd: JUMP
000026de: JUMPDEST
000026df: PUSH1 0x40
000026e1: DUP1
000026e2: DUP3
000026e3: MSTORE
000026e4: DUP4
000026e5: MLOAD
000026e6: DUP3
000026e7: DUP3
000026e8: ADD
000026e9: DUP2
000026ea: SWAP1
000026eb: MSTORE
000026ec: PUSH1 0x00
000026ee: SWAP2
000026ef: SWAP1
000026f0: PUSH1 0x20
000026f2: SWAP1
000026f3: PUSH1 0x60
000026f5: DUP6
000026f6: ADD
000026f7: SWAP1
000026f8: DUP3
000026f9: DUP9
000026fa: ADD
000026fb: DUP6
000026fc: JUMPDEST
000026fd: DUP3
000026fe: DUP2
000026ff: LT
00002700: ISZERO
00002701: PUSH2 0x2736
00002704: JUMPI
00002705: DUP2
00002706: MLOAD
00002707: DUP1
00002708: MLOAD
00002709: DUP6
0000270a: MSTORE
0000270b: DUP6
0000270c: DUP2
0000270d: ADD
0000270e: MLOAD
0000270f: DUP7
00002710: DUP7
00002711: ADD
00002712: MSTORE
00002713: DUP7
00002714: ADD
00002715: MLOAD
00002716: PUSH2 0x2721
00002719: DUP8
0000271a: DUP7
0000271b: ADD
0000271c: DUP3
0000271d: PUSH2 0x2603
00002720: JUMP
00002721: JUMPDEST
00002722: POP
00002723: PUSH2 0x0100
00002726: SWAP4
00002727: SWAP1
00002728: SWAP4
00002729: ADD
0000272a: SWAP3
0000272b: SWAP1
0000272c: DUP5
0000272d: ADD
0000272e: SWAP1
0000272f: PUSH1 0x01
00002731: ADD
00002732: PUSH2 0x26fc
00002735: JUMP
00002736: JUMPDEST
00002737: POP
00002738: POP
00002739: POP
0000273a: DUP1
0000273b: SWAP4
0000273c: POP
0000273d: POP
0000273e: POP
0000273f: POP
00002740: DUP3
00002741: PUSH1 0x20
00002743: DUP4
00002744: ADD
00002745: MSTORE
00002746: SWAP4
00002747: SWAP3
00002748: POP
00002749: POP
0000274a: POP
0000274b: JUMP
0000274c: JUMPDEST
0000274d: PUSH1 0x00
0000274f: PUSH1 0x20
00002751: DUP3
00002752: DUP5
00002753: SUB
00002754: SLT
00002755: ISZERO
00002756: PUSH2 0x275e
00002759: JUMPI
0000275a: PUSH1 0x00
0000275c: DUP1
0000275d: REVERT
0000275e: JUMPDEST
0000275f: PUSH2 0x12a0
00002762: DUP3
00002763: PUSH2 0x2567
00002766: JUMP
00002767: JUMPDEST
00002768: PUSH1 0x20
0000276a: DUP2
0000276b: ADD
0000276c: PUSH2 0x2774
0000276f: DUP4
00002770: PUSH2 0x25e5
00002773: JUMP
00002774: JUMPDEST
00002775: SWAP2
00002776: SWAP1
00002777: MSTORE
00002778: SWAP1
00002779: JUMP
0000277a: JUMPDEST
0000277b: PUSH1 0x00
0000277d: DUP1
0000277e: PUSH1 0x40
00002780: DUP4
00002781: DUP6
00002782: SUB
00002783: SLT
00002784: ISZERO
00002785: PUSH2 0x278d
00002788: JUMPI
00002789: PUSH1 0x00
0000278b: DUP1
0000278c: REVERT
0000278d: JUMPDEST
0000278e: PUSH2 0x2796
00002791: DUP4
00002792: PUSH2 0x2666
00002795: JUMP
00002796: JUMPDEST
00002797: SWAP2
00002798: POP
00002799: PUSH1 0x20
0000279b: DUP4
0000279c: ADD
0000279d: CALLDATALOAD
0000279e: PUSH4 0xffffffff
000027a3: DUP2
000027a4: AND
000027a5: DUP2
000027a6: EQ
000027a7: PUSH2 0x27af
000027aa: JUMPI
000027ab: PUSH1 0x00
000027ad: DUP1
000027ae: REVERT
000027af: JUMPDEST
000027b0: DUP1
000027b1: SWAP2
000027b2: POP
000027b3: POP
000027b4: SWAP3
000027b5: POP
000027b6: SWAP3
000027b7: SWAP1
000027b8: POP
000027b9: JUMP
000027ba: JUMPDEST
000027bb: PUSH1 0x00
000027bd: PUSH1 0x20
000027bf: DUP3
000027c0: DUP5
000027c1: SUB
000027c2: SLT
000027c3: ISZERO
000027c4: PUSH2 0x27cc
000027c7: JUMPI
000027c8: PUSH1 0x00
000027ca: DUP1
000027cb: REVERT
000027cc: JUMPDEST
000027cd: PUSH2 0x12a0
000027d0: DUP3
000027d1: PUSH2 0x2666
000027d4: JUMP
000027d5: JUMPDEST
000027d6: PUSH1 0x00
000027d8: PUSH1 0x01
000027da: DUP3
000027db: ADD
000027dc: PUSH2 0x27e7
000027df: JUMPI
000027e0: PUSH2 0x27e7
000027e3: PUSH2 0x253e
000027e6: JUMP
000027e7: JUMPDEST
000027e8: POP
000027e9: PUSH1 0x01
000027eb: ADD
000027ec: SWAP1
000027ed: JUMP
000027ee: JUMPDEST
000027ef: DUP1
000027f0: DUP3
000027f1: MUL
000027f2: DUP2
000027f3: ISZERO
000027f4: DUP3
000027f5: DUP3
000027f6: DIV
000027f7: DUP5
000027f8: EQ
000027f9: OR
000027fa: PUSH2 0x0b27
000027fd: JUMPI
000027fe: PUSH2 0x0b27
00002801: PUSH2 0x253e
00002804: JUMP
00002805: JUMPDEST
00002806: DUP2
00002807: DUP2
00002808: SUB
00002809: DUP2
0000280a: DUP2
0000280b: GT
0000280c: ISZERO
0000280d: PUSH2 0x0b27
00002810: JUMPI
00002811: PUSH2 0x0b27
00002814: PUSH2 0x253e
00002817: JUMP
00002818: JUMPDEST
00002819: PUSH4 0x4e487b71
0000281e: PUSH1 0xe0
00002820: SHL
00002821: PUSH1 0x00
00002823: MSTORE
00002824: PUSH1 0x41
00002826: PUSH1 0x04
00002828: MSTORE
00002829: PUSH1 0x24
0000282b: PUSH1 0x00
0000282d: REVERT
0000282e: JUMPDEST
0000282f: PUSH4 0x4e487b71
00002834: PUSH1 0xe0
00002836: SHL
00002837: PUSH1 0x00
00002839: MSTORE
0000283a: PUSH1 0x32
0000283c: PUSH1 0x04
0000283e: MSTORE
0000283f: PUSH1 0x24
00002841: PUSH1 0x00
00002843: REVERT
00002844: JUMPDEST
00002845: PUSH1 0x20
00002847: DUP1
00002848: DUP3
00002849: MSTORE
0000284a: PUSH1 0x34
0000284c: SWAP1
0000284d: DUP3
0000284e: ADD
0000284f: MSTORE
00002850: PUSH32 0x626c617a655374616b696e673a6c617374206379636c65206469737472696275
00002871: PUSH1 0x40
00002873: DUP3
00002874: ADD
00002875: MSTORE
00002876: PUSH20 0x1d1a5bdb881859191c995cdcc81b9bdd081cd95d
0000288b: PUSH1 0x62
0000288d: SHL
0000288e: PUSH1 0x60
00002890: DUP3
00002891: ADD
00002892: MSTORE
00002893: PUSH1 0x80
00002895: ADD
00002896: SWAP1
00002897: JUMP
00002898: JUMPDEST
00002899: PUSH4 0x4e487b71
0000289e: PUSH1 0xe0
000028a0: SHL
000028a1: PUSH1 0x00
000028a3: MSTORE
000028a4: PUSH1 0x12
000028a6: PUSH1 0x04
000028a8: MSTORE
000028a9: PUSH1 0x24
000028ab: PUSH1 0x00
000028ad: REVERT
000028ae: JUMPDEST
000028af: PUSH1 0x00
000028b1: DUP3
000028b2: PUSH2 0x28bd
000028b5: JUMPI
000028b6: PUSH2 0x28bd
000028b9: PUSH2 0x2898
000028bc: JUMP
000028bd: JUMPDEST
000028be: POP
000028bf: DIV
000028c0: SWAP1
000028c1: JUMP
000028c2: JUMPDEST
000028c3: PUSH4 0xffffffff
000028c8: DUP3
000028c9: DUP2
000028ca: AND
000028cb: DUP3
000028cc: DUP3
000028cd: AND
000028ce: SUB
000028cf: SWAP1
000028d0: DUP1
000028d1: DUP3
000028d2: GT
000028d3: ISZERO
000028d4: PUSH2 0x28df
000028d7: JUMPI
000028d8: PUSH2 0x28df
000028db: PUSH2 0x253e
000028de: JUMP
000028df: JUMPDEST
000028e0: POP
000028e1: SWAP3
000028e2: SWAP2
000028e3: POP
000028e4: POP
000028e5: JUMP
000028e6: JUMPDEST
000028e7: PUSH1 0x00
000028e9: PUSH4 0xffffffff
000028ee: DUP1
000028ef: DUP4
000028f0: AND
000028f1: DUP2
000028f2: DUP2
000028f3: SUB
000028f4: PUSH2 0x28ff
000028f7: JUMPI
000028f8: PUSH2 0x28ff
000028fb: PUSH2 0x253e
000028fe: JUMP
000028ff: JUMPDEST
00002900: PUSH1 0x01
00002902: ADD
00002903: SWAP4
00002904: SWAP3
00002905: POP
00002906: POP
00002907: POP
00002908: JUMP
00002909: JUMPDEST
0000290a: PUSH1 0x00
0000290c: PUSH4 0xffffffff
00002911: DUP1
00002912: DUP5
00002913: AND
00002914: DUP1
00002915: PUSH2 0x2920
00002918: JUMPI
00002919: PUSH2 0x2920
0000291c: PUSH2 0x2898
0000291f: JUMP
00002920: JUMPDEST
00002921: SWAP3
00002922: AND
00002923: SWAP2
00002924: SWAP1
00002925: SWAP2
00002926: MOD
00002927: SWAP3
00002928: SWAP2
00002929: POP
0000292a: POP
0000292b: JUMP
0000292c: JUMPDEST
0000292d: PUSH4 0xffffffff
00002932: DUP2
00002933: DUP2
00002934: AND
00002935: DUP4
00002936: DUP3
00002937: AND
00002938: ADD
00002939: SWAP1
0000293a: DUP1
0000293b: DUP3
0000293c: GT
0000293d: ISZERO
0000293e: PUSH2 0x28df
00002941: JUMPI
00002942: PUSH2 0x28df
00002945: PUSH2 0x253e
00002948: JUMP
00002949: JUMPDEST
0000294a: PUSH1 0x00
0000294c: DUP1
0000294d: PUSH1 0x00
0000294f: PUSH1 0x60
00002951: DUP5
00002952: DUP7
00002953: SUB
00002954: SLT
00002955: ISZERO
00002956: PUSH2 0x295e
00002959: JUMPI
0000295a: PUSH1 0x00
0000295c: DUP1
0000295d: REVERT
0000295e: JUMPDEST
0000295f: DUP4
00002960: MLOAD
00002961: SWAP3
00002962: POP
00002963: PUSH1 0x20
00002965: DUP5
00002966: ADD
00002967: MLOAD
00002968: SWAP2
00002969: POP
0000296a: PUSH1 0x40
0000296c: DUP5
0000296d: ADD
0000296e: MLOAD
0000296f: SWAP1
00002970: POP
00002971: SWAP3
00002972: POP
00002973: SWAP3
00002974: POP
00002975: SWAP3
00002976: JUMP
00002977: JUMPDEST
00002978: PUSH1 0x00
0000297a: PUSH1 0x20
0000297c: DUP3
0000297d: DUP5
0000297e: SUB
0000297f: SLT
00002980: ISZERO
00002981: PUSH2 0x2989
00002984: JUMPI
00002985: PUSH1 0x00
00002987: DUP1
00002988: REVERT
00002989: JUMPDEST
0000298a: DUP2
0000298b: MLOAD
0000298c: DUP1
0000298d: ISZERO
0000298e: ISZERO
0000298f: DUP2
00002990: EQ
00002991: PUSH2 0x12a0
00002994: JUMPI
00002995: PUSH1 0x00
00002997: DUP1
00002998: REVERT
00002999: JUMPDEST
0000299a: PUSH1 0x00
0000299c: PUSH4 0xffffffff
000029a1: DUP1
000029a2: DUP5
000029a3: AND
000029a4: DUP1
000029a5: PUSH2 0x29b0
000029a8: JUMPI
000029a9: PUSH2 0x29b0
000029ac: PUSH2 0x2898
000029af: JUMP
000029b0: JUMPDEST
000029b1: SWAP3
000029b2: AND
000029b3: SWAP2
000029b4: SWAP1
000029b5: SWAP2
000029b6: DIV
000029b7: SWAP3
000029b8: SWAP2
000029b9: POP
000029ba: POP
000029bb: JUMP
000029bc: JUMPDEST
000029bd: PUSH4 0xffffffff
000029c2: DUP2
000029c3: DUP2
000029c4: AND
000029c5: DUP4
000029c6: DUP3
000029c7: AND
000029c8: MUL
000029c9: DUP1
000029ca: DUP3
000029cb: AND
000029cc: SWAP2
000029cd: SWAP1
000029ce: DUP3
000029cf: DUP2
000029d0: EQ
000029d1: PUSH2 0x29dc
000029d4: JUMPI
000029d5: PUSH2 0x29dc
000029d8: PUSH2 0x253e
000029db: JUMP
000029dc: JUMPDEST
000029dd: POP
000029de: POP
000029df: SWAP3
000029e0: SWAP2
000029e1: POP
000029e2: POP
000029e3: JUMP
000029e4: JUMPDEST
000029e5: PUSH1 0x00
000029e7: DUP3
000029e8: MLOAD
000029e9: PUSH1 0x00
000029eb: JUMPDEST
000029ec: DUP2
000029ed: DUP2
000029ee: LT
000029ef: ISZERO
000029f0: PUSH2 0x2a05
000029f3: JUMPI
000029f4: PUSH1 0x20
000029f6: DUP2
000029f7: DUP7
000029f8: ADD
000029f9: DUP2
000029fa: ADD
000029fb: MLOAD
000029fc: DUP6
000029fd: DUP4
000029fe: ADD
000029ff: MSTORE
00002a00: ADD
00002a01: PUSH2 0x29eb
00002a04: JUMP
00002a05: JUMPDEST
00002a06: POP
00002a07: PUSH1 0x00
00002a09: SWAP3
00002a0a: ADD
00002a0b: SWAP2
00002a0c: DUP3
00002a0d: MSTORE
00002a0e: POP
00002a0f: SWAP2
00002a10: SWAP1
00002a11: POP
00002a12: JUMP
00002a13: INVALID
00002a14: LOG2
00002a15: PUSH5 0x6970667358
00002a1b: UNKNOWN(0x22)
00002a1c: SLT
00002a1d: KECCAK256
00002a1e: ADDRESS
00002a1f: NOT
00002a20: UNKNOWN(0xC5)
00002a21: UNKNOWN(0xF9)
00002a22: UNKNOWN(0xD2)
00002a23: PUSH12 0x888715161e7d35ba0c0d2272
00002a30: MULMOD
00002a31: MLOAD
00002a32: GT
00002a33: COINBASE
00002a34: UNKNOWN(0xD6)
00002a35: UNKNOWN(0x0C)
00002a36: UNKNOWN(0x0D)
00002a37: DUP14
00002a38: PUSH0
00002a39: SWAP9
00002a3a: SWAP6
00002a3b: CHAINID
00002a3c: UNKNOWN(0xBF)
00002a3d: PUSH27

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x69af7ff6e42d477f4a31e9b6b674dd98adfe897394a92127f182bc8a4471bd05
call_targets: 0xbc0043bc5b0c394d9d05d49768f9548f8cf9587b
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x69af7ff6e42d477f4a31e9b6b674dd98adfe897394a92127f182bc8a4471bd05",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xbc0043bc5b0c394d9d05d49768f9548f8cf9587b"
    ],
    "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": "0xcf9a3361",
            "selector": "0xcf9a3361",
            "calldata_variants": [
                "0xcf9a3361",
                "0xcf9a33610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfaa94d3b",
            "selector": "0xfaa94d3b",
            "calldata_variants": [
                "0xfaa94d3b",
                "0xfaa94d3b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbf9529d",
            "selector": "0xfbf9529d",
            "calldata_variants": [
                "0xfbf9529d",
                "0xfbf9529d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb92f46cd",
            "selector": "0xb92f46cd",
            "calldata_variants": [
                "0xb92f46cd",
                "0xb92f46cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc0e764cb",
            "selector": "0xc0e764cb",
            "calldata_variants": [
                "0xc0e764cb",
                "0xc0e764cb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc36e60a9",
            "selector": "0xc36e60a9",
            "calldata_variants": [
                "0xc36e60a9",
                "0xc36e60a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7231,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9235,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x69af7ff6e42d477f4a31e9b6b674dd98adfe897394a92127f182bc8a4471bd05
call_targets: 0xbc0043bc5b0c394d9d05d49768f9548f8cf9587b
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x69af7ff6e42d477f4a31e9b6b674dd98adfe897394a92127f182bc8a4471bd05",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xbc0043bc5b0c394d9d05d49768f9548f8cf9587b"
    ],
    "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": "0xcf9a3361",
            "selector": "0xcf9a3361",
            "calldata_variants": [
                "0xcf9a3361",
                "0xcf9a33610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfaa94d3b",
            "selector": "0xfaa94d3b",
            "calldata_variants": [
                "0xfaa94d3b",
                "0xfaa94d3b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbf9529d",
            "selector": "0xfbf9529d",
            "calldata_variants": [
                "0xfbf9529d",
                "0xfbf9529d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb92f46cd",
            "selector": "0xb92f46cd",
            "calldata_variants": [
                "0xb92f46cd",
                "0xb92f46cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc0e764cb",
            "selector": "0xc0e764cb",
            "calldata_variants": [
                "0xc0e764cb",
                "0xc0e764cb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc36e60a9",
            "selector": "0xc36e60a9",
            "calldata_variants": [
                "0xc36e60a9",
                "0xc36e60a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7231,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9235,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
medium access_control codex Anyone can end another user’s matured stake, cutting off their future rewards 75 no
view
evidence_json
{
    "evidence": "`unstakeBlaze` is `external` and accepts an arbitrary `__user`, then calls `_unstakeBlaze` without checking caller identity.",
    "locations": [
        "contracts/blazeStaking.sol:139"
    ],
    "recommendation": "Restrict `unstakeBlaze` to the stake owner (e.g., `require(msg.sender == __user)`), or add explicit operator approvals if third\u2011party unstaking is intended.",
    "exploit_scenario": "An attacker monitors for stakes that just reached maturity and calls `unstakeBlaze(victim, stakeId)`. This immediately marks the stake completed and transfers the principal to the victim, but it also removes the victim\u2019s shares from future reward distributions, effectively griefing them and potentially causing missed cycle rewards."
}
low other codex Share/accounting assumes full token transfer; deflationary tokens can break invariants 65 no
view
evidence_json
{
    "evidence": "Shares and totals are updated using `__blazeAmount` before calling `safeTransferFrom`, and unstake returns the originally recorded amount.",
    "locations": [
        "contracts/blazeStaking.sol:126",
        "contracts/blazeStaking.sol:134"
    ],
    "recommendation": "Either restrict `_blazeToken` to non\u2011fee\u2011on\u2011transfer tokens or compute the actual received amount by comparing balances before/after `safeTransferFrom`, then base shares and totals on the received value.",
    "exploit_scenario": "If the staking token charges transfer fees or is deflationary, the contract credits shares and `_totalBlazeTokenStaked` based on the requested `__blazeAmount`, but receives fewer tokens. This can make the contract insolvent and misallocate rewards, and may revert on unstake due to insufficient balance."
}