d2059fa9-7d9b-46bb-87e6-c88defafd461
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30210 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 73444 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 73445 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 73446 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 73447 | capability.graph | complete | 1 / 3 | 1 week ago |
| 73448 | detector.run | complete | 1 / 3 | 1 week ago |
| 73449 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:619198] OpenAI Codex v0.77.0 (research preview)
[codex:619198] --------
[codex:619198] workdir: /tmp/codex-multi-glsmobr7
[codex:619198] model: gpt-5.2-codex
[codex:619198] provider: openai
[codex:619198] approval: never
[codex:619198] sandbox: read-only
[codex:619198] reasoning effort: xhigh
[codex:619198] reasoning summaries: auto
[codex:619198] session id: 019b61e0-7636-74f0-94d8-9868e8f118e3
[codex:619198] --------
[codex:619198] user
[codex:619198] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:619198] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:619198] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:619198]
[codex:619198] Scope rules:
[codex:619198] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:619198] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:619198]
[codex:619198] Output MUST be valid JSON matching the provided schema.
[codex:619198] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:619198] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:619198]
[codex:619198] Output constraints (IMPORTANT):
[codex:619198] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:619198] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:619198] mcp startup: no servers
[codex:619198]
[codex:619198] thinking
[codex:619198] **Checking for instructions in AUDIT_BUNDLE.txt**
[codex:619198] exec
[codex:619198] /bin/bash -lc ls in /tmp/codex-multi-glsmobr7 succeeded in 6ms:
[codex:619198] AUDIT_BUNDLE.txt
[codex:619198] codex-output-schema.json
[codex:619198] contracts
[codex:619198] exec
[codex:619198] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-glsmobr7 succeeded in 5ms:
[codex:619198] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:619198]
[codex:619198] ================================================================================
[codex:619198] FILE: contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol
[codex:619198] ================================================================================
[codex:619198] // SPDX-License-Identifier: MIT
[codex:619198]
[codex:619198] pragma solidity ^0.8.0;
[codex:619198]
[codex:619198] /**
[codex:619198] * @dev Contract module that helps prevent reentrant calls to a function.
[codex:619198] *
[codex:619198] * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
[codex:619198] * available, which can be applied to functions to make sure there are no nested
[codex:619198] * (reentrant) calls to them.
[codex:619198] *
[codex:619198] * Note that because there is a single `nonReentrant` guard, functions marked as
[codex:619198] * `nonReentrant` may not call one another. This can be worked around by making
[codex:619198] * those functions `private`, and then adding `external` `nonReentrant` entry
[codex:619198] * points to them.
[codex:619198]
[codex:619198] thinking
[codex:619198] **Searching for first-party contract files**
[codex:619198] exec
[codex:619198] /bin/bash -lc 'rg -n "''^FILE: contracts/" AUDIT_BUNDLE.txt' in /tmp/codex-multi-glsmobr7 succeeded in 7ms:
[codex:619198] 4:FILE: contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol
[codex:619198] 70:FILE: contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol
[codex:619198] 429:FILE: contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:619198] 514:FILE: contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
[codex:619198] 545:FILE: contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
[codex:619198] 647:FILE: contracts/@openzeppelin/contracts/utils/Address.sol
[codex:619198] 867:FILE: contracts/@openzeppelin/contracts/utils/Context.sol
[codex:619198] 894:FILE: contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol
[codex:619198] 1117:FILE: contracts/contracts/CosmosToken.sol
[codex:619198] 1156:FILE: contracts/contracts/Gravity.sol
[codex:619198]
[codex:619198] thinking
[codex:619198] **Inspecting CosmosToken contract**
[codex:619198] exec
[codex:619198] /bin/bash -lc 'cat contracts/contracts/CosmosToken.sol' in /tmp/codex-multi-glsmobr7 succeeded in 5ms:
[codex:619198] //SPDX-License-Identifier: Apache-2.0
[codex:619198] pragma solidity 0.8.10;
[codex:619198] import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
[codex:619198]
[codex:619198] contract CosmosERC20 is ERC20 {
[codex:619198] uint256 MAX_UINT = 2**256 - 1;
[codex:619198] uint8 private cosmosDecimals;
[codex:619198] address private gravityAddress;
[codex:619198]
[codex:619198] // This override ensures we return the proper number of decimals
[codex:619198] // for the cosmos token
[codex:619198] function decimals() public view virtual override returns (uint8) {
[codex:619198] return cosmosDecimals;
[codex:619198] }
[codex:619198]
[codex:619198] // This is not an accurate total supply. Instead this is the total supply
[codex:619198] // of the given cosmos asset on Ethereum at this moment in time. Keeping
[codex:619198] // a totally accurate supply would require constant updates from the Cosmos
[codex:619198] // side, while in theory this could be piggy-backed on some existing bridge
[codex:619198] // operation it's a lot of complextiy to add so we chose to forgoe it.
[codex:619198]
[codex:619198] thinking
[codex:619198] **Checking Gravity.sol location**
[codex:619198] exec
[codex:619198] /bin/bash -lc 'cat contracts/contracts/Gravity.sol' in /tmp/codex-multi-glsmobr7 succeeded in 5ms:
[codex:619198] //SPDX-License-Identifier: Apache-2.0
[codex:619198] pragma solidity 0.8.10;
[codex:619198]
[codex:619198] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:619198] import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:619198] import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
[codex:619198] import "@openzeppelin/contracts/utils/Address.sol";
[codex:619198] import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
[codex:619198] import "./CosmosToken.sol";
[codex:619198]
[codex:619198] error InvalidSignature();
[codex:619198] error InvalidValsetNonce(uint256 newNonce, uint256 currentNonce);
[codex:619198] error InvalidBatchNonce(uint256 newNonce, uint256 currentNonce);
[codex:619198] error InvalidLogicCallNonce(uint256 newNonce, uint256 currentNonce);
[codex:619198] error InvalidLogicCallTransfers();
[codex:619198] error InvalidLogicCallFees();
[codex:619198] error InvalidSendToCosmos();
[codex:619198] error IncorrectCheckpoint();
[codex:619198] error MalformedNewValidatorSet();
[codex:619198] error MalformedCurrentValidatorSet();
[codex:619198]
[codex:619198]
[codex:619198]
[codex:619198]
[codex:619198]
[codex:619198]
[codex:619198] thinking
[codex:619198] **Analyzing Gravity Bridge vulnerabilities**
[codex:619198]
[codex:619198] I’m examining the Gravity Bridge contract for various vulnerabilities like reentrancy, signature validation, and access control. I’m considering specific functions such as updateValset, deployERC20, and submitBatch, checking for missing nonReentrant guards, signature uniqueness, and potential DoS via permissionless token deployment. This walkthrough digs into subtle risks around signature duplication, event nonce spamming, and the implications of permissionless deployERC20 calls, while noting mitigation by required signatures and contract design choices.
[codex:619198] thinking
[codex:619198] **Highlighting signature and call validations**
[codex:619198]
[codex:619198] I’m exploring issues like missing uniqueness checks for validators leading to signature duplication, effects of non-standard signature values, and risks from the permissionless deployERC20 function enabling event nonce spamming. I also consider reentrancy through logic calls, signature ordering enforcement, and edge cases in token handling that might affect Bridge operations or event integrity.
[codex:619198] thinking
[codex:619198] **Examining state updates and reentrancy risks**
[codex:619198]
[codex:619198] I’m reviewing subtle issues like potential event nonce ordering disruptions from reentrant calls during reward token transfers in updateValset, implications of permissionless deployERC20 spamming event nonces, and ERC20 nonstandard behaviors affecting bridging amounts. I also analyze signature checks, overflow protections, and how token transfers interact with contract state, aiming to find meaningful vulnerabilities or confirm robustness.
[codex:619198] thinking
[codex:619198] **Assessing logic call risks and event nonce sequencing**
[codex:619198]
[codex:619198] I’m considering how the logic call might let contracts drain tokens unexpectedly by leveraging Gravity’s token holdings, and exploring implications of event nonce incrementation in valset updates that could cause mismatches with Cosmos module expectations. I’m weighing governance concerns and protocol design quirks versus exploitable flaws while reviewing signature schemes and state initialization nuances.
[codex:619198] thinking
[codex:619198] **Analyzing validator duplicates and token amount risks**
[codex:619198]
[codex:619198] I’m examining implications of validator address duplicates allowing signature reuse to inflate voting power, assessment of event nonce DoS vectors via permissionless token deployment, and potential token balance manipulation causing inaccurate bridging amounts. These nuances reveal integration and design risks more than direct exploits, but I want to highlight them clearly before concluding.
[codex:619198] thinking
[codex:619198] **Identifying signature replay due to limited domain separation**
[codex:619198]
[codex:619198] I’m noticing that signatures depend on gravityId alone without including contract address or chain ID, which means if gravityId is reused across deployments or chains, signatures can be replayed. This creates a plausible replay attack scenario if deployments share the same gravityId, so while it’s likely a configuration risk, it stands out as a meaningful issue worth reporting.
[codex:619198] exec
[codex:619198] /bin/bash -lc "nl -ba contracts/contracts/Gravity.sol | sed -n '60,200p'" in /tmp/codex-multi-glsmobr7 succeeded in 8ms:
[codex:619198] 60 struct Signature {
[codex:619198] 61 uint8 v;
[codex:619198] 62 bytes32 r;
[codex:619198] 63 bytes32 s;
[codex:619198] 64 }
[codex:619198] 65
[codex:619198] 66 contract Gravity is ReentrancyGuard {
[codex:619198] 67 using SafeERC20 for IERC20;
[codex:619198] 68
[codex:619198] 69 // The number of 'votes' required to execute a valset
[codex:619198] 70 // update or batch execution, set to 2/3 of 2^32
[codex:619198] 71 uint256 constant constant_powerThreshold = 2863311530;
[codex:619198] 72
[codex:619198] 73 // These are updated often
[codex:619198] 74 bytes32 public state_lastValsetCheckpoint;
[codex:619198] 75 mapping(address => uint256) public state_lastBatchNonces;
[codex:619198] 76 mapping(bytes32 => uint256) public state_invalidationMapping;
[codex:619198] 77 uint256 public state_lastValsetNonce = 0;
[codex:619198] 78 // event nonce zero is reserved by the Cosmos module as a special
[codex:619198] 79 // value indicating that no events have yet been submitted
[codex:619198]
[codex:619198] thinking
[codex:619198] **Continuing implementation for submitBatch and submitLogicCall**
[codex:619198] exec
[codex:619198] /bin/bash -lc "nl -ba contracts/contracts/Gravity.sol | sed -n '200,380p'" in /tmp/codex-multi-glsmobr7 succeeded in 6ms:
[codex:619198] 200 )
[codex:619198] 201 );
[codex:619198] 202
[codex:619198] 203 return checkpoint;
[codex:619198] 204 }
[codex:619198] 205
[codex:619198] 206 function checkValidatorSignatures(
[codex:619198] 207 // The current validator set and their powers
[codex:619198] 208 ValsetArgs calldata _currentValset,
[codex:619198] 209 // The current validator's signatures
[codex:619198] 210 Signature[] calldata _sigs,
[codex:619198] 211 // This is what we are checking they have signed
[codex:619198] 212 bytes32 _theHash,
[codex:619198] 213 uint256 _powerThreshold
[codex:619198] 214 ) private pure {
[codex:619198] 215 uint256 cumulativePower = 0;
[codex:619198] 216
[codex:619198] 217 for (uint256 i = 0; i < _currentValset.validators.length; i++) {
[codex:619198] 218 // If v is set to 0, this signifies that it was not possible to get a signature from this validator and we skip evaluation
[codex:619198] 219 // (In a valid signature, it is either 27 or 28)
[codex:619198]
[codex:619198] thinking
[codex:619198] **Continuing examination of hash**
[codex:619198] exec
[codex:619198] /bin/bash -lc "nl -ba contracts/contracts/Gravity.sol | sed -n '380,560p'" in /tmp/codex-multi-glsmobr7 succeeded in 6ms:
[codex:619198] 380 if (block.number >= _batchTimeout) {
[codex:619198] 381 revert BatchTimedOut();
[codex:619198] 382 }
[codex:619198] 383
[codex:619198] 384 // Check that current validators, powers, and signatures (v,r,s) set is well-formed
[codex:619198] 385 validateValset(_currentValset, _sigs);
[codex:619198] 386
[codex:619198] 387 // Check that the supplied current validator set matches the saved checkpoint
[codex:619198] 388 if (makeCheckpoint(_currentValset, state_gravityId) != state_lastValsetCheckpoint) {
[codex:619198] 389 revert IncorrectCheckpoint();
[codex:619198] 390 }
[codex:619198] 391
[codex:619198] 392 // Check that the transaction batch is well-formed
[codex:619198] 393 if (_amounts.length != _destinations.length || _amounts.length != _fees.length) {
[codex:619198] 394 revert MalformedBatch();
[codex:619198] 395 }
[codex:619198] 396
[codex:619198] 397 // Check that enough current validators have signed off on the transaction batch and valset
[codex:619198] 398 checkValidatorSignatures(
[codex:619198] 399 _currentValset,
[codex:619198]
[codex:619198] thinking
[codex:619198] **Continuing data transmission**
[codex:619198] exec
[codex:619198] /bin/bash -lc "nl -ba contracts/contracts/Gravity.sol | sed -n '560,740p'" in /tmp/codex-multi-glsmobr7 succeeded in 6ms:
[codex:619198] 560 // we snapshot our current balance of this token
[codex:619198] 561 uint256 ourStartingBalance = IERC20(_tokenContract).balanceOf(address(this));
[codex:619198] 562
[codex:619198] 563 // attempt to transfer the user specified amount
[codex:619198] 564 IERC20(_tokenContract).safeTransferFrom(msg.sender, address(this), _amount);
[codex:619198] 565
[codex:619198] 566 // check what this particular ERC20 implementation actually gave us, since it doesn't
[codex:619198] 567 // have to be at all related to the _amount
[codex:619198] 568 uint256 ourEndingBalance = IERC20(_tokenContract).balanceOf(address(this));
[codex:619198] 569
[codex:619198] 570 // a very strange ERC20 may trigger this condition, if we didn't have this we would
[codex:619198] 571 // underflow, so it's mostly just an error message printer
[codex:619198] 572 if (ourEndingBalance <= ourStartingBalance) {
[codex:619198] 573 revert InvalidSendToCosmos();
[codex:619198] 574 }
[codex:619198] 575
[codex:619198] 576 state_lastEventNonce = state_lastEventNonce + 1;
[codex:619198] 577
[codex:619198] 578 // emit to Cosmos the actual amount our balance has changed, rather than the user
[codex:619198] 579 // provided amount. This protects against a small set of wonky ERC20 behavior, like
[codex:619198]
[codex:619198] thinking
[codex:619198] **Adding line numbers for CosmosToken**
[codex:619198] exec
[codex:619198] /bin/bash -lc 'nl -ba contracts/contracts/CosmosToken.sol' in /tmp/codex-multi-glsmobr7 succeeded in 6ms:
[codex:619198] 1 //SPDX-License-Identifier: Apache-2.0
[codex:619198] 2 pragma solidity 0.8.10;
[codex:619198] 3 import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
[codex:619198] 4
[codex:619198] 5 contract CosmosERC20 is ERC20 {
[codex:619198] 6 uint256 MAX_UINT = 2**256 - 1;
[codex:619198] 7 uint8 private cosmosDecimals;
[codex:619198] 8 address private gravityAddress;
[codex:619198] 9
[codex:619198] 10 // This override ensures we return the proper number of decimals
[codex:619198] 11 // for the cosmos token
[codex:619198] 12 function decimals() public view virtual override returns (uint8) {
[codex:619198] 13 return cosmosDecimals;
[codex:619198] 14 }
[codex:619198] 15
[codex:619198] 16 // This is not an accurate total supply. Instead this is the total supply
[codex:619198] 17 // of the given cosmos asset on Ethereum at this moment in time. Keeping
[codex:619198] 18 // a totally accurate supply would require constant updates from the Cosmos
[codex:619198] 19 // side, while in theory this could be piggy-backed on some existing bridge
[codex:619198] 20 // operation it's a lot of complextiy to add so we chose to forgoe it.
[codex:619198]
[codex:619198]
[codex:619198] thinking
[codex:619198] **Composing detailed findings JSON**
[codex:619198]
[codex:619198] I'm crafting a JSON report with two findings: one medium-severity auth issue about missing domain separation causing signature replay risks across deployments, and one low-severity auth issue about duplicate validator addresses allowing signature reuse to inflate validator power. I'll carefully include titles, categories, severities, exploit scenarios, recommendations, evidence, and code locations to make the report clear and precise.
[codex:619198] thinking
[codex:619198] **Finalizing detailed JSON report**
[codex:619198]
[codex:619198] I'm wrapping up the JSON output describing two findings: a medium-severity domain separation replay risk with its evidence and locations, and a low-severity duplicate validator address issue, complete with scenarios, recommendations, and precise contract line references. Ensuring the JSON is well-formed and matches the requested schema.
[codex:619198] codex
[codex:619198] {"no_findings":false,"summary":"Found 2 issues: 1 medium (signature replay risk if gravityId is reused) and 1 low (duplicate validator addresses can reduce effective quorum).","findings":[{"severity":"medium","category":"auth","title":"Signatures are not domain-separated by contract address or chain ID","exploit_scenario":"If the same gravityId is reused across multiple Gravity deployments (or chains), any signed batch/logic-call/valset update from one deployment can be replayed on another. An attacker can submit previously valid signatures to execute withdrawals on the other contract, draining its balances.","recommendation":"Include domain separation in all signed hashes by incorporating `address(this)` and/or `block.chainid` (and enforce unique gravityId on deployment). This prevents cross-deployment or cross-chain signature replay even if gravityId is misconfigured.","evidence":"Signed payloads and checkpoints only include `state_gravityId` as the domain separator; contract address/chain ID are not included.","locations":["contracts/contracts/Gravity.sol:183","contracts/contracts/Gravity.sol:402","contracts/contracts/Gravity.sol:495"]},{"severity":"low","category":"auth","title":"Validator address uniqueness is not enforced in valsets","exploit_scenario":"If a valset is created with duplicate validator addresses (accidentally or via operator error), a single validator can reuse its signature for each duplicate entry and have its power counted multiple times. This reduces the effective number of distinct signers required to reach the threshold and can enable unauthorized batch/valset execution.","recommendation":"Validate that `_valset.validators` contains unique addresses when initializing and updating the validator set (and consider enforcing sorted powers to match assumptions).","evidence":"`validateValset` only checks array lengths; `checkValidatorSignatures` counts power per entry and does not prevent duplicate signer addresses or reused signatures.","locations":["contracts/contracts/Gravity.sol:165","contracts/contracts/Gravity.sol:217"]}]}
[codex:619198] tokens used
[codex:619198] 55,698
[codex:619198] {"no_findings":false,"summary":"Found 2 issues: 1 medium (signature replay risk if gravityId is reused) and 1 low (duplicate validator addresses can reduce effective quorum).","findings":[{"severity":"medium","category":"auth","title":"Signatures are not domain-separated by contract address or chain ID","exploit_scenario":"If the same gravityId is reused across multiple Gravity deployments (or chains), any signed batch/logic-call/valset update from one deployment can be replayed on another. An attacker can submit previously valid signatures to execute withdrawals on the other contract, draining its balances.","recommendation":"Include domain separation in all signed hashes by incorporating `address(this)` and/or `block.chainid` (and enforce unique gravityId on deployment). This prevents cross-deployment or cross-chain signature replay even if gravityId is misconfigured.","evidence":"Signed payloads and checkpoints only include `state_gravityId` as the domain separator; contract address/chain ID are not included.","locations":["contracts/contracts/Gravity.sol:183","contracts/contracts/Gravity.sol:402","contracts/contracts/Gravity.sol:495"]},{"severity":"low","category":"auth","title":"Validator address uniqueness is not enforced in valsets","exploit_scenario":"If a valset is created with duplicate validator addresses (accidentally or via operator error), a single validator can reuse its signature for each duplicate entry and have its power counted multiple times. This reduces the effective number of distinct signers required to reach the threshold and can enable unauthorized batch/valset execution.","recommendation":"Validate that `_valset.validators` contains unique addresses when initializing and updating the validator set (and consider enforcing sorted powers to match assumptions).","evidence":"`validateValset` only checks array lengths; `checkValidatorSignatures` counts power per entry and does not prevent duplicate signer addresses or reused signatures.","locations":["contracts/contracts/Gravity.sol:165","contracts/contracts/Gravity.sol:217"]}]}
{
"codex": {
"ran_at": "2025-12-27T22:22:04.952735+00:00",
"returncode": 0
},
"summary": "Found 2 issues: 1 medium (signature replay risk if gravityId is reused) and 1 low (duplicate validator addresses can reduce effective quorum).",
"raw_final": {
"summary": "Found 2 issues: 1 medium (signature replay risk if gravityId is reused) and 1 low (duplicate validator addresses can reduce effective quorum).",
"findings": [
{
"title": "Signatures are not domain-separated by contract address or chain ID",
"category": "auth",
"evidence": "Signed payloads and checkpoints only include `state_gravityId` as the domain separator; contract address/chain ID are not included.",
"severity": "medium",
"locations": [
"contracts/contracts/Gravity.sol:183",
"contracts/contracts/Gravity.sol:402",
"contracts/contracts/Gravity.sol:495"
],
"recommendation": "Include domain separation in all signed hashes by incorporating `address(this)` and/or `block.chainid` (and enforce unique gravityId on deployment). This prevents cross-deployment or cross-chain signature replay even if gravityId is misconfigured.",
"exploit_scenario": "If the same gravityId is reused across multiple Gravity deployments (or chains), any signed batch/logic-call/valset update from one deployment can be replayed on another. An attacker can submit previously valid signatures to execute withdrawals on the other contract, draining its balances."
},
{
"title": "Validator address uniqueness is not enforced in valsets",
"category": "auth",
"evidence": "`validateValset` only checks array lengths; `checkValidatorSignatures` counts power per entry and does not prevent duplicate signer addresses or reused signatures.",
"severity": "low",
"locations": [
"contracts/contracts/Gravity.sol:165",
"contracts/contracts/Gravity.sol:217"
],
"recommendation": "Validate that `_valset.validators` contains unique addresses when initializing and updating the validator set (and consider enforcing sorted powers to match assumptions).",
"exploit_scenario": "If a valset is created with duplicate validator addresses (accidentally or via operator error), a single validator can reuse its signature for each duplicate entry and have its power counted multiple times. This reduces the effective number of distinct signers required to reach the threshold and can enable unauthorized batch/valset execution."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH3 0x000011 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: DUP1 00000010: REVERT 00000011: JUMPDEST 00000012: POP 00000013: PUSH1 0x04 00000015: CALLDATASIZE 00000016: LT 00000017: PUSH3 0x000108 0000001b: JUMPI 0000001c: PUSH1 0x00 0000001e: CALLDATALOAD 0000001f: PUSH1 0xe0 00000021: SHR 00000022: DUP1 00000023: PUSH4 0x8690ff98 00000028: GT 00000029: PUSH3 0x0000a3 0000002d: JUMPI 0000002e: DUP1 0000002f: PUSH4 0xc9d194d5 00000034: GT 00000035: PUSH3 0x00006e 00000039: JUMPI 0000003a: DUP1 0000003b: PUSH4 0xc9d194d5 00000040: EQ 00000041: PUSH3 0x000236 00000045: JUMPI 00000046: DUP1 00000047: PUSH4 0xdf97174b 0000004c: EQ 0000004d: PUSH3 0x000259 00000051: JUMPI 00000052: DUP1 00000053: PUSH4 0xf2b53307 00000058: EQ 00000059: PUSH3 0x00027c 0000005d: JUMPI 0000005e: DUP1 0000005f: PUSH4 0xf7955637 00000064: EQ 00000065: PUSH3 0x000286 00000069: JUMPI 0000006a: PUSH1 0x00 0000006c: DUP1 0000006d: REVERT 0000006e: JUMPDEST 0000006f: DUP1 00000070: PUSH4 0x8690ff98 00000075: EQ 00000076: PUSH3 0x0001d6 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xaca6b1c1 00000081: EQ 00000082: PUSH3 0x0001ed 00000086: JUMPI 00000087: DUP1 00000088: PUSH4 0xb56561fe 0000008d: EQ 0000008e: PUSH3 0x000204 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0xbdda81d4 00000099: EQ 0000009a: PUSH3 0x00020e 0000009e: JUMPI 0000009f: PUSH1 0x00 000000a1: DUP1 000000a2: REVERT 000000a3: JUMPDEST 000000a4: DUP1 000000a5: PUSH4 0x0f212357 000000aa: GT 000000ab: PUSH3 0x0000e4 000000af: JUMPI 000000b0: DUP1 000000b1: PUSH4 0x0f212357 000000b6: EQ 000000b7: PUSH3 0x00017b 000000bb: JUMPI 000000bc: DUP1 000000bd: PUSH4 0x6941db93 000000c2: EQ 000000c3: PUSH3 0x000192 000000c7: JUMPI 000000c8: DUP1 000000c9: PUSH4 0x73b20547 000000ce: EQ 000000cf: PUSH3 0x0001a9 000000d3: JUMPI 000000d4: DUP1 000000d5: PUSH4 0x7dfb6f86 000000da: EQ 000000db: PUSH3 0x0001b3 000000df: JUMPI 000000e0: PUSH1 0x00 000000e2: DUP1 000000e3: REVERT 000000e4: JUMPDEST 000000e5: DUP1 000000e6: PUSH3 0x901153 000000ea: EQ 000000eb: PUSH3 0x00010d 000000ef: JUMPI 000000f0: DUP1 000000f1: PUSH4 0x01031525 000000f6: EQ 000000f7: PUSH3 0x000126 000000fb: JUMPI 000000fc: DUP1 000000fd: PUSH4 0x011b2174 00000102: EQ 00000103: PUSH3 0x00013d 00000107: JUMPI 00000108: JUMPDEST 00000109: PUSH1 0x00 0000010b: DUP1 0000010c: REVERT 0000010d: JUMPDEST 0000010e: PUSH3 0x000124 00000112: PUSH3 0x00011e 00000116: CALLDATASIZE 00000117: PUSH1 0x04 00000119: PUSH3 0x001893 0000011d: JUMP 0000011e: JUMPDEST 0000011f: PUSH3 0x00029d 00000123: JUMP 00000124: JUMPDEST 00000125: STOP 00000126: JUMPDEST 00000127: PUSH3 0x000124 0000012b: PUSH3 0x000137 0000012f: CALLDATASIZE 00000130: PUSH1 0x04 00000132: PUSH3 0x001914 00000136: JUMP 00000137: JUMPDEST 00000138: PUSH3 0x0002b3 0000013c: JUMP 0000013d: JUMPDEST 0000013e: PUSH3 0x000169 00000142: PUSH3 0x00014e 00000146: CALLDATASIZE 00000147: PUSH1 0x04 00000149: PUSH3 0x001979 0000014d: JUMP 0000014e: JUMPDEST 0000014f: PUSH1 0x01 00000151: PUSH1 0x01 00000153: PUSH1 0xa0 00000155: SHL 00000156: SUB 00000157: AND 00000158: PUSH1 0x00 0000015a: SWAP1 0000015b: DUP2 0000015c: MSTORE 0000015d: PUSH1 0x02 0000015f: PUSH1 0x20 00000161: MSTORE 00000162: PUSH1 0x40 00000164: SWAP1 00000165: KECCAK256 00000166: SLOAD 00000167: SWAP1 00000168: JUMP 00000169: JUMPDEST 0000016a: PUSH1 0x40 0000016c: MLOAD 0000016d: SWAP1 0000016e: DUP2 0000016f: MSTORE 00000170: PUSH1 0x20 00000172: ADD 00000173: PUSH1 0x40 00000175: MLOAD 00000176: DUP1 00000177: SWAP2 00000178: SUB 00000179: SWAP1 0000017a: RETURN 0000017b: JUMPDEST 0000017c: PUSH3 0x000124 00000180: PUSH3 0x00018c 00000184: CALLDATASIZE 00000185: PUSH1 0x04 00000187: PUSH3 0x0019db 0000018b: JUMP 0000018c: JUMPDEST 0000018d: PUSH3 0x0002ce 00000191: JUMP 00000192: JUMPDEST 00000193: PUSH3 0x000124 00000197: PUSH3 0x0001a3 0000019b: CALLDATASIZE 0000019c: PUSH1 0x04 0000019e: PUSH3 0x001c29 000001a2: JUMP 000001a3: JUMPDEST 000001a4: PUSH3 0x000490 000001a8: JUMP 000001a9: JUMPDEST 000001aa: PUSH3 0x000169 000001ae: PUSH1 0x05 000001b0: SLOAD 000001b1: DUP2 000001b2: JUMP 000001b3: JUMPDEST 000001b4: PUSH3 0x000169 000001b8: PUSH3 0x0001c4 000001bc: CALLDATASIZE 000001bd: PUSH1 0x04 000001bf: PUSH3 0x001dc5 000001c3: JUMP 000001c4: JUMPDEST 000001c5: PUSH1 0x03 000001c7: PUSH1 0x20 000001c9: MSTORE 000001ca: PUSH1 0x00 000001cc: SWAP1 000001cd: DUP2 000001ce: MSTORE 000001cf: PUSH1 0x40 000001d1: SWAP1 000001d2: KECCAK256 000001d3: SLOAD 000001d4: DUP2 000001d5: JUMP 000001d6: JUMPDEST 000001d7: PUSH3 0x000124 000001db: PUSH3 0x0001e7 000001df: CALLDATASIZE 000001e0: PUSH1 0x04 000001e2: PUSH3 0x001e26 000001e6: JUMP 000001e7: JUMPDEST 000001e8: PUSH3 0x000825 000001ec: JUMP 000001ed: JUMPDEST 000001ee: PUSH3 0x000124 000001f2: PUSH3 0x0001fe 000001f6: CALLDATASIZE 000001f7: PUSH1 0x04 000001f9: PUSH3 0x001f5f 000001fd: JUMP 000001fe: JUMPDEST 000001ff: PUSH3 0x000b7a 00000203: JUMP 00000204: JUMPDEST 00000205: PUSH3 0x000169 00000209: PUSH1 0x04 0000020b: SLOAD 0000020c: DUP2 0000020d: JUMP 0000020e: JUMPDEST 0000020f: PUSH3 0x000169 00000213: PUSH32 0x677261766974792d6272696467652d6d61696e6e657400000000000000000000 00000234: DUP2 00000235: JUMP 00000236: JUMPDEST 00000237: PUSH3 0x000169 0000023b: PUSH3 0x000247 0000023f: CALLDATASIZE 00000240: PUSH1 0x04 00000242: PUSH3 0x001dc5 00000246: JUMP 00000247: JUMPDEST 00000248: PUSH1 0x00 0000024a: SWAP1 0000024b: DUP2 0000024c: MSTORE 0000024d: PUSH1 0x03 0000024f: PUSH1 0x20 00000251: MSTORE 00000252: PUSH1 0x40 00000254: SWAP1 00000255: KECCAK256 00000256: SLOAD 00000257: SWAP1 00000258: JUMP 00000259: JUMPDEST 0000025a: PUSH3 0x000169 0000025e: PUSH3 0x00026a 00000262: CALLDATASIZE 00000263: PUSH1 0x04 00000265: PUSH3 0x001979 00000269: JUMP 0000026a: JUMPDEST 0000026b: PUSH1 0x02 0000026d: PUSH1 0x20 0000026f: MSTORE 00000270: PUSH1 0x00 00000272: SWAP1 00000273: DUP2 00000274: MSTORE 00000275: PUSH1 0x40 00000277: SWAP1 00000278: KECCAK256 00000279: SLOAD 0000027a: DUP2 0000027b: JUMP 0000027c: JUMPDEST 0000027d: PUSH3 0x000169 00000281: PUSH1 0x01 00000283: SLOAD 00000284: DUP2 00000285: JUMP 00000286: JUMPDEST 00000287: PUSH3 0x000124 0000028b: PUSH3 0x000297 0000028f: CALLDATASIZE 00000290: PUSH1 0x04 00000292: PUSH3 0x002005 00000296: JUMP 00000297: JUMPDEST 00000298: PUSH3 0x000e69 0000029c: JUMP 0000029d: JUMPDEST 0000029e: PUSH3 0x0002ac 000002a2: DUP6 000002a3: DUP6 000002a4: DUP6 000002a5: DUP6 000002a6: DUP6 000002a7: PUSH3 0x000f21 000002ab: JUMP 000002ac: JUMPDEST 000002ad: POP 000002ae: POP 000002af: POP 000002b0: POP 000002b1: POP 000002b2: JUMP 000002b3: JUMPDEST 000002b4: PUSH3 0x0002c9 000002b8: PUSH3 0x0002c2 000002bc: DUP4 000002bd: PUSH3 0x0020bb 000002c1: JUMP 000002c2: JUMPDEST 000002c3: DUP3 000002c4: PUSH3 0x00107b 000002c8: JUMP 000002c9: JUMPDEST 000002ca: POP 000002cb: POP 000002cc: POP 000002cd: JUMP 000002ce: JUMPDEST 000002cf: PUSH1 0x02 000002d1: PUSH1 0x00 000002d3: SLOAD 000002d4: EQ 000002d5: ISZERO 000002d6: PUSH3 0x0002fd 000002da: JUMPI 000002db: PUSH1 0x40 000002dd: MLOAD 000002de: PUSH3 0x461bcd 000002e2: PUSH1 0xe5 000002e4: SHL 000002e5: DUP2 000002e6: MSTORE 000002e7: PUSH1 0x04 000002e9: ADD 000002ea: PUSH3 0x0002f4 000002ee: SWAP1 000002ef: PUSH3 0x002171 000002f3: JUMP 000002f4: JUMPDEST 000002f5: PUSH1 0x40 000002f7: MLOAD 000002f8: DUP1 000002f9: SWAP2 000002fa: SUB 000002fb: SWAP1 000002fc: REVERT 000002fd: JUMPDEST 000002fe: PUSH1 0x02 00000300: PUSH1 0x00 00000302: SWAP1 00000303: DUP2 00000304: SSTORE 00000305: PUSH1 0x40 00000307: MLOAD 00000308: PUSH4 0x70a08231 0000030d: PUSH1 0xe0 0000030f: SHL 00000310: DUP2 00000311: MSTORE 00000312: ADDRESS 00000313: PUSH1 0x04 00000315: DUP3 00000316: ADD 00000317: MSTORE 00000318: PUSH1 0x01 0000031a: PUSH1 0x01 0000031c: PUSH1 0xa0 0000031e: SHL 0000031f: SUB 00000320: DUP7 00000321: AND 00000322: SWAP1 00000323: PUSH4 0x70a08231 00000328: SWAP1 00000329: PUSH1 0x24 0000032b: ADD 0000032c: PUSH1 0x20 0000032e: PUSH1 0x40 00000330: MLOAD 00000331: DUP1 00000332: DUP4 00000333: SUB 00000334: DUP2 00000335: DUP7 00000336: GAS 00000337: STATICCALL 00000338: ISZERO 00000339: DUP1 0000033a: ISZERO 0000033b: PUSH3 0x000349 0000033f: JUMPI 00000340: RETURNDATASIZE 00000341: PUSH1 0x00 00000343: DUP1 00000344: RETURNDATACOPY 00000345: RETURNDATASIZE 00000346: PUSH1 0x00 00000348: REVERT 00000349: JUMPDEST 0000034a: POP 0000034b: POP 0000034c: POP 0000034d: POP 0000034e: PUSH1 0x40 00000350: MLOAD 00000351: RETURNDATASIZE 00000352: PUSH1 0x1f 00000354: NOT 00000355: PUSH1 0x1f 00000357: DUP3 00000358: ADD 00000359: AND 0000035a: DUP3 0000035b: ADD 0000035c: DUP1 0000035d: PUSH1 0x40 0000035f: MSTORE 00000360: POP 00000361: DUP2 00000362: ADD 00000363: SWAP1 00000364: PUSH3 0x00036f 00000368: SWAP2 00000369: SWAP1 0000036a: PUSH3 0x0021a8 0000036e: JUMP 0000036f: JUMPDEST 00000370: SWAP1 00000371: POP 00000372: PUSH3 0x000388 00000376: PUSH1 0x01 00000378: PUSH1 0x01 0000037a: PUSH1 0xa0 0000037c: SHL 0000037d: SUB 0000037e: DUP7 0000037f: AND 00000380: CALLER 00000381: ADDRESS 00000382: DUP6 00000383: PUSH3 0x0010e7 00000387: JUMP 00000388: JUMPDEST 00000389: PUSH1 0x40 0000038b: MLOAD 0000038c: PUSH4 0x70a08231 00000391: PUSH1 0xe0 00000393: SHL 00000394: DUP2 00000395: MSTORE 00000396: ADDRESS 00000397: PUSH1 0x04 00000399: DUP3 0000039a: ADD 0000039b: MSTORE 0000039c: PUSH1 0x00 0000039e: SWAP1 0000039f: PUSH1 0x01 000003a1: PUSH1 0x01 000003a3: PUSH1 0xa0 000003a5: SHL 000003a6: SUB 000003a7: DUP8 000003a8: AND 000003a9: SWAP1 000003aa: PUSH4 0x70a08231 000003af: SWAP1 000003b0: PUSH1 0x24 000003b2: ADD 000003b3: PUSH1 0x20 000003b5: PUSH1 0x40 000003b7: MLOAD 000003b8: DUP1 000003b9: DUP4 000003ba: SUB 000003bb: DUP2 000003bc: DUP7 000003bd: GAS 000003be: STATICCALL 000003bf: ISZERO 000003c0: DUP1 000003c1: ISZERO 000003c2: PUSH3 0x0003d0 000003c6: JUMPI 000003c7: RETURNDATASIZE 000003c8: PUSH1 0x00 000003ca: DUP1 000003cb: RETURNDATACOPY 000003cc: RETURNDATASIZE 000003cd: PUSH1 0x00 000003cf: REVERT 000003d0: JUMPDEST 000003d1: POP 000003d2: POP 000003d3: POP 000003d4: POP 000003d5: PUSH1 0x40 000003d7: MLOAD 000003d8: RETURNDATASIZE 000003d9: PUSH1 0x1f 000003db: NOT 000003dc: PUSH1 0x1f 000003de: DUP3 000003df: ADD 000003e0: AND 000003e1: DUP3 000003e2: ADD 000003e3: DUP1 000003e4: PUSH1 0x40 000003e6: MSTORE 000003e7: POP 000003e8: DUP2 000003e9: ADD 000003ea: SWAP1 000003eb: PUSH3 0x0003f6 000003ef: SWAP2 000003f0: SWAP1 000003f1: PUSH3 0x0021a8 000003f5: JUMP 000003f6: JUMPDEST 000003f7: SWAP1 000003f8: POP 000003f9: DUP2 000003fa: DUP2 000003fb: GT 000003fc: PUSH3 0x000419 00000400: JUMPI 00000401: PUSH1 0x40 00000403: MLOAD 00000404: PUSH4 0x21739d9b 00000409: PUSH1 0xe0 0000040b: SHL 0000040c: DUP2 0000040d: MSTORE 0000040e: PUSH1 0x04 00000410: ADD 00000411: PUSH1 0x40 00000413: MLOAD 00000414: DUP1 00000415: SWAP2 00000416: SUB 00000417: SWAP1 00000418: REVERT 00000419: JUMPDEST 0000041a: PUSH1 0x05 0000041c: SLOAD 0000041d: PUSH3 0x000429 00000421: SWAP1 00000422: PUSH1 0x01 00000424: PUSH3 0x0021d8 00000428: JUMP 00000429: JUMPDEST 0000042a: PUSH1 0x05 0000042c: SSTORE 0000042d: CALLER 0000042e: PUSH1 0x01 00000430: PUSH1 0x01 00000432: PUSH1 0xa0 00000434: SHL 00000435: SUB 00000436: DUP8 00000437: AND 00000438: PUSH32 0x9e9794dbf94b0a0aa31a480f5b38550eda7f89115ac8fbf4953fa4dd219900c9 00000459: DUP8 0000045a: DUP8 0000045b: PUSH3 0x000466 0000045f: DUP8 00000460: DUP8 00000461: PUSH3 0x0021f3 00000465: JUMP 00000466: JUMPDEST 00000467: PUSH1 0x05 00000469: SLOAD 0000046a: PUSH1 0x40 0000046c: MLOAD 0000046d: PUSH3 0x00047b 00000471: SWAP5 00000472: SWAP4 00000473: SWAP3 00000474: SWAP2 00000475: SWAP1 00000476: PUSH3 0x002236 0000047a: JUMP 0000047b: JUMPDEST 0000047c: PUSH1 0x40 0000047e: MLOAD 0000047f: DUP1 00000480: SWAP2 00000481: SUB 00000482: SWAP1 00000483: LOG3 00000484: POP 00000485: POP 00000486: PUSH1 0x01 00000488: PUSH1 0x00 0000048a: SSTORE 0000048b: POP 0000048c: POP 0000048d: POP 0000048e: POP 0000048f: JUMP 00000490: JUMPDEST 00000491: PUSH1 0x02 00000493: PUSH1 0x00 00000495: SLOAD 00000496: EQ 00000497: ISZERO 00000498: PUSH3 0x0004b6 0000049c: JUMPI 0000049d: PUSH1 0x40 0000049f: MLOAD 000004a0: PUSH3 0x461bcd 000004a4: PUSH1 0xe5 000004a6: SHL 000004a7: DUP2 000004a8: MSTORE 000004a9: PUSH1 0x04 000004ab: ADD 000004ac: PUSH3 0x0002f4 000004b0: SWAP1 000004b1: PUSH3 0x002171 000004b5: JUMP 000004b6: JUMPDEST 000004b7: PUSH1 0x02 000004b9: PUSH1 0x00 000004bb: SSTORE 000004bc: PUSH1 0xc0 000004be: DUP2 000004bf: ADD 000004c0: MLOAD 000004c1: NUMBER 000004c2: LT 000004c3: PUSH3 0x0004e0 000004c7: JUMPI 000004c8: PUSH1 0x40 000004ca: MLOAD 000004cb: PUSH4 0xbcf37c25 000004d0: PUSH1 0xe0 000004d2: SHL 000004d3: DUP2 000004d4: MSTORE 000004d5: PUSH1 0x04 000004d7: ADD 000004d8: PUSH1 0x40 000004da: MLOAD 000004db: DUP1 000004dc: SWAP2 000004dd: SUB 000004de: SWAP1 000004df: REVERT 000004e0: JUMPDEST 000004e1: PUSH2 0x0100 000004e4: DUP2 000004e5: ADD 000004e6: MLOAD 000004e7: PUSH1 0xe0 000004e9: DUP3 000004ea: ADD 000004eb: MLOAD 000004ec: PUSH1 0x00 000004ee: SWAP1 000004ef: DUP2 000004f0: MSTORE 000004f1: PUSH1 0x03 000004f3: PUSH1 0x20 000004f5: MSTORE 000004f6: PUSH1 0x40 000004f8: SWAP1 000004f9: KECCAK256 000004fa: SLOAD 000004fb: LT 000004fc: PUSH3 0x00053d 00000500: JUMPI 00000501: PUSH2 0x0100 00000504: DUP2 00000505: ADD 00000506: MLOAD 00000507: PUSH1 0xe0 00000509: DUP3 0000050a: ADD 0000050b: MLOAD 0000050c: PUSH1 0x00 0000050e: SWAP1 0000050f: DUP2 00000510: MSTORE 00000511: PUSH1 0x03 00000513: PUSH1 0x20 00000515: MSTORE 00000516: PUSH1 0x40 00000518: SWAP1 00000519: DUP2 0000051a: SWAP1 0000051b: KECCAK256 0000051c: SLOAD 0000051d: SWAP1 0000051e: MLOAD 0000051f: PUSH3 0x9427e9 00000523: PUSH1 0xe1 00000525: SHL 00000526: DUP2 00000527: MSTORE 00000528: PUSH1 0x04 0000052a: DUP2 0000052b: ADD 0000052c: SWAP3 0000052d: SWAP1 0000052e: SWAP3 0000052f: MSTORE 00000530: PUSH1 0x24 00000532: DUP3 00000533: ADD 00000534: MSTORE 00000535: PUSH1 0x44 00000537: ADD 00000538: PUSH3 0x0002f4 0000053c: JUMP 0000053d: JUMPDEST 0000053e: PUSH3 0x00054a 00000542: DUP5 00000543: DUP5 00000544: DUP5 00000545: PUSH3 0x00115a 00000549: JUMP 0000054a: JUMPDEST 0000054b: PUSH1 0x01 0000054d: SLOAD 0000054e: PUSH3 0x000583 00000552: PUSH3 0x00055c 00000556: DUP7 00000557: PUSH3 0x0020bb 0000055b: JUMP 0000055c: JUMPDEST 0000055d: PUSH32 0x677261766974792d6272696467652d6d61696e6e657400000000000000000000 0000057e: PUSH3 0x00107b 00000582: JUMP 00000583: JUMPDEST 00000584: EQ 00000585: PUSH3 0x0005a2 00000589: JUMPI 0000058a: PUSH1 0x40 0000058c: MLOAD 0000058d: PUSH4 0x723a3403 00000592: PUSH1 0xe0 00000594: SHL 00000595: DUP2 00000596: MSTORE 00000597: PUSH1 0x04 00000599: ADD 0000059a: PUSH1 0x40 0000059c: MLOAD 0000059d: DUP1 0000059e: SWAP2 0000059f: SUB 000005a0: SWAP1 000005a1: REVERT 000005a2: JUMPDEST 000005a3: PUSH1 0x20 000005a5: DUP2 000005a6: ADD 000005a7: MLOAD 000005a8: MLOAD 000005a9: DUP2 000005aa: MLOAD 000005ab: MLOAD 000005ac: EQ 000005ad: PUSH3 0x0005ca 000005b1: JUMPI 000005b2: PUSH1 0x40 000005b4: MLOAD 000005b5: PUSH4 0x4298a951 000005ba: PUSH1 0xe1 000005bc: SHL 000005bd: DUP2 000005be: MSTORE 000005bf: PUSH1 0x04 000005c1: ADD 000005c2: PUSH1 0x40 000005c4: MLOAD 000005c5: DUP1 000005c6: SWAP2 000005c7: SUB 000005c8: SWAP1 000005c9: REVERT 000005ca: JUMPDEST 000005cb: DUP1 000005cc: PUSH1 0x60 000005ce: ADD 000005cf: MLOAD 000005d0: MLOAD 000005d1: DUP2 000005d2: PUSH1 0x40 000005d4: ADD 000005d5: MLOAD 000005d6: MLOAD 000005d7: EQ 000005d8: PUSH3 0x0005f5 000005dc: JUMPI 000005dd: PUSH1 0x40 000005df: MLOAD 000005e0: PUSH4 0x48292479 000005e5: PUSH1 0xe0 000005e7: SHL 000005e8: DUP2 000005e9: MSTORE 000005ea: PUSH1 0x04 000005ec: ADD 000005ed: PUSH1 0x40 000005ef: MLOAD 000005f0: DUP1 000005f1: SWAP2 000005f2: SUB 000005f3: SWAP1 000005f4: REVERT 000005f5: JUMPDEST 000005f6: PUSH1 0x00 000005f8: PUSH32 0x677261766974792d6272696467652d6d61696e6e657400000000000000000000 00000619: PUSH9 0x1b1bd9da58d0d85b1b 00000623: PUSH1 0xba 00000625: SHL 00000626: DUP4 00000627: PUSH1 0x00 00000629: ADD 0000062a: MLOAD 0000062b: DUP5 0000062c: PUSH1 0x20 0000062e: ADD 0000062f: MLOAD 00000630: DUP6 00000631: PUSH1 0x40 00000633: ADD 00000634: MLOAD 00000635: DUP7 00000636: PUSH1 0x60 00000638: ADD 00000639: MLOAD 0000063a: DUP8 0000063b: PUSH1 0x80 0000063d: ADD 0000063e: MLOAD 0000063f: DUP9 00000640: PUSH1 0xa0 00000642: ADD 00000643: MLOAD 00000644: DUP10 00000645: PUSH1 0xc0 00000647: ADD 00000648: MLOAD 00000649: DUP11 0000064a: PUSH1 0xe0 0000064c: ADD 0000064d: MLOAD 0000064e: DUP12 0000064f: PUSH2 0x0100 00000652: ADD 00000653: MLOAD 00000654: PUSH1 0x40 00000656: MLOAD 00000657: PUSH1 0x20 00000659: ADD 0000065a: PUSH3 0x00066f 0000065e: SWAP12 0000065f: SWAP11 00000660: SWAP10 00000661: SWAP9 00000662: SWAP8 00000663: SWAP7 00000664: SWAP6 00000665: SWAP5 00000666: SWAP4 00000667: SWAP3 00000668: SWAP2 00000669: SWAP1 0000066a: PUSH3 0x002334 0000066e: JUMP 0000066f: JUMPDEST 00000670: PUSH1 0x40 00000672: MLOAD 00000673: PUSH1 0x20 00000675: DUP2 00000676: DUP4 00000677: SUB 00000678: SUB 00000679: DUP2 0000067a: MSTORE 0000067b: SWAP1 0000067c: PUSH1 0x40 0000067e: MSTORE 0000067f: DUP1 00000680: MLOAD 00000681: SWAP1 00000682: PUSH1 0x20 00000684: ADD 00000685: KECCAK256 00000686: SWAP1 00000687: POP 00000688: PUSH3 0x00069a 0000068c: DUP6 0000068d: DUP6 0000068e: DUP6 0000068f: DUP5 00000690: PUSH4 0xaaaaaaaa 00000695: PUSH3 0x000f21 00000699: JUMP 0000069a: JUMPDEST 0000069b: POP 0000069c: PUSH2 0x0100 0000069f: DUP2 000006a0: ADD 000006a1: MLOAD 000006a2: PUSH1 0xe0 000006a4: DUP3 000006a5: ADD 000006a6: MLOAD 000006a7: PUSH1 0x00 000006a9: SWAP1 000006aa: DUP2 000006ab: MSTORE 000006ac: PUSH1 0x03 000006ae: PUSH1 0x20 000006b0: MSTORE 000006b1: PUSH1 0x40 000006b3: DUP2 000006b4: KECCAK256 000006b5: SWAP2 000006b6: SWAP1 000006b7: SWAP2 000006b8: SSTORE 000006b9: JUMPDEST 000006ba: DUP2 000006bb: MLOAD 000006bc: MLOAD 000006bd: DUP2 000006be: LT 000006bf: ISZERO 000006c0: PUSH3 0x00073d 000006c4: JUMPI 000006c5: PUSH3 0x000728 000006c9: DUP3 000006ca: PUSH1 0x80 000006cc: ADD 000006cd: MLOAD 000006ce: DUP4 000006cf: PUSH1 0x00 000006d1: ADD 000006d2: MLOAD 000006d3: DUP4 000006d4: DUP2 000006d5: MLOAD 000006d6: DUP2 000006d7: LT 000006d8: PUSH3 0x0006e6 000006dc: JUMPI 000006dd: PUSH3 0x0006e6 000006e1: PUSH3 0x0023e4 000006e5: JUMP 000006e6: JUMPDEST 000006e7: PUSH1 0x20 000006e9: MUL 000006ea: PUSH1 0x20 000006ec: ADD 000006ed: ADD 000006ee: MLOAD 000006ef: DUP5 000006f0: PUSH1 0x20 000006f2: ADD 000006f3: MLOAD 000006f4: DUP5 000006f5: DUP2 000006f6: MLOAD 000006f7: DUP2 000006f8: LT 000006f9: PUSH3 0x000707 000006fd: JUMPI 000006fe: PUSH3 0x000707 00000702: PUSH3 0x0023e4 00000706: JUMP 00000707: JUMPDEST 00000708: PUSH1 0x20 0000070a: MUL 0000070b: PUSH1 0x20 0000070d: ADD 0000070e: ADD 0000070f: MLOAD 00000710: PUSH1 0x01 00000712: PUSH1 0x01 00000714: PUSH1 0xa0 00000716: SHL 00000717: SUB 00000718: AND 00000719: PUSH3 0x0011b3 0000071d: SWAP1 0000071e: SWAP3 0000071f: SWAP2 00000720: SWAP1 00000721: PUSH4 0xffffffff 00000726: AND 00000727: JUMP 00000728: JUMPDEST 00000729: DUP1 0000072a: PUSH3 0x000734 0000072e: DUP2 0000072f: PUSH3 0x0023fa 00000733: JUMP 00000734: JUMPDEST 00000735: SWAP2 00000736: POP 00000737: POP 00000738: PUSH3 0x0006b9 0000073c: JUMP 0000073d: JUMPDEST 0000073e: POP 0000073f: PUSH1 0x00 00000741: PUSH3 0x000754 00000745: DUP3 00000746: PUSH1 0x80 00000748: ADD 00000749: MLOAD 0000074a: DUP4 0000074b: PUSH1 0xa0 0000074d: ADD 0000074e: MLOAD 0000074f: PUSH3 0x0011e5 00000753: JUMP 00000754: JUMPDEST 00000755: SWAP1 00000756: POP 00000757: PUSH1 0x00 00000759: JUMPDEST 0000075a: DUP3 0000075b: PUSH1 0x40 0000075d: ADD 0000075e: MLOAD 0000075f: MLOAD 00000760: DUP2 00000761: LT 00000762: ISZERO 00000763: PUSH3 0x0007bb 00000767: JUMPI 00000768: PUSH3 0x0007a6 0000076c: CALLER 0000076d: DUP5 0000076e: PUSH1 0x40 00000770: ADD 00000771: MLOAD 00000772: DUP4 00000773: DUP2 00000774: MLOAD 00000775: DUP2 00000776: LT 00000777: PUSH3 0x000785 0000077b: JUMPI 0000077c: PUSH3 0x000785 00000780: PUSH3 0x0023e4 00000784: JUMP 00000785: JUMPDEST 00000786: PUSH1 0x20 00000788: MUL 00000789: PUSH1 0x20 0000078b: ADD 0000078c: ADD 0000078d: MLOAD 0000078e: DUP6 0000078f: PUSH1 0x60 00000791: ADD 00000792: MLOAD 00000793: DUP5 00000794: DUP2 00000795: MLOAD 00000796: DUP2 00000797: LT 00000798: PUSH3 0x000707 0000079c: JUMPI 0000079d: PUSH3 0x000707 000007a1: PUSH3 0x0023e4 000007a5: JUMP 000007a6: JUMPDEST 000007a7: DUP1 000007a8: PUSH3 0x0007b2 000007ac: DUP2 000007ad: PUSH3 0x0023fa 000007b1: JUMP 000007b2: JUMPDEST 000007b3: SWAP2 000007b4: POP 000007b5: POP 000007b6: PUSH3 0x000759 000007ba: JUMP 000007bb: JUMPDEST 000007bc: POP 000007bd: PUSH1 0x05 000007bf: SLOAD 000007c0: PUSH3 0x0007cc 000007c4: SWAP1 000007c5: PUSH1 0x01 000007c7: PUSH3 0x0021d8 000007cb: JUMP 000007cc: JUMPDEST 000007cd: PUSH1 0x05 000007cf: DUP2 000007d0: SWAP1 000007d1: SSTORE 000007d2: PUSH1 0xe0 000007d4: DUP4 000007d5: ADD 000007d6: MLOAD 000007d7: PUSH2 0x0100 000007da: DUP5 000007db: ADD 000007dc: MLOAD 000007dd: PUSH1 0x40 000007df: MLOAD 000007e0: PUSH32 0x7c2bb24f8e1b3725cb613d7f11ef97d9745cc97a0e40f730621c052d684077a1 00000801: SWAP4 00000802: PUSH3 0x000811 00000806: SWAP4 00000807: SWAP3 00000808: SWAP2 00000809: DUP7 0000080a: SWAP2 0000080b: SWAP1 0000080c: PUSH3 0x002418 00000810: JUMP 00000811: JUMPDEST 00000812: PUSH1 0x40 00000814: MLOAD 00000815: DUP1 00000816: SWAP2 00000817: SUB 00000818: SWAP1 00000819: LOG1 0000081a: POP 0000081b: POP 0000081c: PUSH1 0x01 0000081e: PUSH1 0x00 00000820: SSTORE 00000821: POP 00000822: POP 00000823: POP 00000824: JUMP 00000825: JUMPDEST 00000826: PUSH1 0x02 00000828: PUSH1 0x00 0000082a: SLOAD 0000082b: EQ 0000082c: ISZERO 0000082d: PUSH3 0x00084b 00000831: JUMPI 00000832: PUSH1 0x40 00000834: MLOAD 00000835: PUSH3 0x461bcd 00000839: PUSH1 0xe5 0000083b: SHL 0000083c: DUP2 0000083d: MSTORE 0000083e: PUSH1 0x04 00000840: ADD 00000841: PUSH3 0x0002f4 00000845: SWAP1 00000846: PUSH3 0x002171 0000084a: JUMP 0000084b: JUMPDEST 0000084c: PUSH1 0x02 0000084e: PUSH1 0x00 00000850: DUP2 00000851: DUP2 00000852: SSTORE 00000853: PUSH1 0x01 00000855: PUSH1 0x01 00000857: PUSH1 0xa0 00000859: SHL 0000085a: SUB 0000085b: DUP5 0000085c: AND 0000085d: DUP2 0000085e: MSTORE 0000085f: PUSH1 0x20 00000861: SWAP2 00000862: SWAP1 00000863: SWAP2 00000864: MSTORE 00000865: PUSH1 0x40 00000867: SWAP1 00000868: KECCAK256 00000869: SLOAD 0000086a: DUP4 0000086b: GT 0000086c: PUSH3 0x0008af 00000870: JUMPI 00000871: PUSH1 0x01 00000873: PUSH1 0x01 00000875: PUSH1 0xa0 00000877: SHL 00000878: SUB 00000879: DUP3 0000087a: AND 0000087b: PUSH1 0x00 0000087d: SWAP1 0000087e: DUP2 0000087f: MSTORE 00000880: PUSH1 0x02 00000882: PUSH1 0x20 00000884: MSTORE 00000885: PUSH1 0x40 00000887: SWAP1 00000888: DUP2 00000889: SWAP1 0000088a: KECCAK256 0000088b: SLOAD 0000088c: SWAP1 0000088d: MLOAD 0000088e: PUSH4 0xf7f920ad 00000893: PUSH1 0xe0 00000895: SHL 00000896: DUP2 00000897: MSTORE 00000898: PUSH3 0x0002f4 0000089c: SWAP2 0000089d: DUP6 0000089e: SWAP2 0000089f: PUSH1 0x04 000008a1: ADD 000008a2: SWAP2 000008a3: DUP3 000008a4: MSTORE 000008a5: PUSH1 0x20 000008a7: DUP3 000008a8: ADD 000008a9: MSTORE 000008aa: PUSH1 0x40 000008ac: ADD 000008ad: SWAP1 000008ae: JUMP 000008af: JUMPDEST 000008b0: PUSH1 0x01 000008b2: PUSH1 0x01 000008b4: PUSH1 0xa0 000008b6: SHL 000008b7: SUB 000008b8: DUP3 000008b9: AND 000008ba: PUSH1 0x00 000008bc: SWAP1 000008bd: DUP2 000008be: MSTORE 000008bf: PUSH1 0x02 000008c1: PUSH1 0x20 000008c3: MSTORE 000008c4: PUSH1 0x40 000008c6: SWAP1 000008c7: KECCAK256 000008c8: SLOAD 000008c9: PUSH3 0x0008d7 000008cd: SWAP1 000008ce: PUSH3 0x0f4240 000008d2: PUSH3 0x0021d8 000008d6: JUMP 000008d7: JUMPDEST 000008d8: DUP4 000008d9: GT 000008da: ISZERO 000008db: PUSH3 0x00091e 000008df: JUMPI 000008e0: PUSH1 0x01 000008e2: PUSH1 0x01 000008e4: PUSH1 0xa0 000008e6: SHL 000008e7: SUB 000008e8: DUP3 000008e9: AND 000008ea: PUSH1 0x00 000008ec: SWAP1 000008ed: DUP2 000008ee: MSTORE 000008ef: PUSH1 0x02 000008f1: PUSH1 0x20 000008f3: MSTORE 000008f4: PUSH1 0x40 000008f6: SWAP1 000008f7: DUP2 000008f8: SWAP1 000008f9: KECCAK256 000008fa: SLOAD 000008fb: SWAP1 000008fc: MLOAD 000008fd: PUSH4 0xf7f920ad 00000902: PUSH1 0xe0 00000904: SHL 00000905: DUP2 00000906: MSTORE 00000907: PUSH3 0x0002f4 0000090b: SWAP2 0000090c: DUP6 0000090d: SWAP2 0000090e: PUSH1 0x04 00000910: ADD 00000911: SWAP2 00000912: DUP3 00000913: MSTORE 00000914: PUSH1 0x20 00000916: DUP3 00000917: ADD 00000918: MSTORE 00000919: PUSH1 0x40 0000091b: ADD 0000091c: SWAP1 0000091d: JUMP 0000091e: JUMPDEST 0000091f: DUP1 00000920: NUMBER 00000921: LT 00000922: PUSH3 0x00093f 00000926: JUMPI 00000927: PUSH1 0x40 00000929: MLOAD 0000092a: PUSH4 0x08b92663 0000092f: PUSH1 0xe1 00000931: SHL 00000932: DUP2 00000933: MSTORE 00000934: PUSH1 0x04 00000936: ADD 00000937: PUSH1 0x40 00000939: MLOAD 0000093a: DUP1 0000093b: SWAP2 0000093c: SUB 0000093d: SWAP1 0000093e: REVERT 0000093f: JUMPDEST 00000940: PUSH3 0x00094c 00000944: DUP13 00000945: DUP13 00000946: DUP13 00000947: PUSH3 0x00115a 0000094b: JUMP 0000094c: JUMPDEST 0000094d: PUSH1 0x01 0000094f: SLOAD 00000950: PUSH3 0x00095e 00000954: PUSH3 0x00055c 00000958: DUP15 00000959: PUSH3 0x0020bb 0000095d: JUMP 0000095e: JUMPDEST 0000095f: EQ 00000960: PUSH3 0x00097d 00000964: JUMPI 00000965: PUSH1 0x40 00000967: MLOAD 00000968: PUSH4 0x723a3403 0000096d: PUSH1 0xe0 0000096f: SHL 00000970: DUP2 00000971: MSTORE 00000972: PUSH1 0x04 00000974: ADD 00000975: PUSH1 0x40 00000977: MLOAD 00000978: DUP1 00000979: SWAP2 0000097a: SUB 0000097b: SWAP1 0000097c: REVERT 0000097d: JUMPDEST 0000097e: DUP8 0000097f: DUP7 00000980: EQ 00000981: ISZERO 00000982: DUP1 00000983: PUSH3 0x00098d 00000987: JUMPI 00000988: POP 00000989: DUP8 0000098a: DUP5 0000098b: EQ 0000098c: ISZERO 0000098d: JUMPDEST 0000098e: ISZERO 0000098f: PUSH3 0x0009ac 00000993: JUMPI 00000994: PUSH1 0x40 00000996: MLOAD 00000997: PUSH4 0xc1f97e35 0000099c: PUSH1 0xe0 0000099e: SHL 0000099f: DUP2 000009a0: MSTORE 000009a1: PUSH1 0x04 000009a3: ADD 000009a4: PUSH1 0x40 000009a6: MLOAD 000009a7: DUP1 000009a8: SWAP2 000009a9: SUB 000009aa: SWAP1 000009ab: REVERT 000009ac: JUMPDEST 000009ad: PUSH3 0x000a2e 000009b1: DUP13 000009b2: DUP13 000009b3: DUP13 000009b4: PUSH32 0x677261766974792d6272696467652d6d61696e6e657400000000000000000000 000009d5: PUSH16 0x0e8e4c2dce6c2c6e8d2dedc84c2e8c6d 000009e6: PUSH1 0x83 000009e8: SHL 000009e9: DUP15 000009ea: DUP15 000009eb: DUP15 000009ec: DUP15 000009ed: DUP15 000009ee: DUP15 000009ef: DUP15 000009f0: DUP15 000009f1: DUP15 000009f2: PUSH1 0x40 000009f4: MLOAD 000009f5: PUSH1 0x20 000009f7: ADD 000009f8: PUSH3 0x000a0d 000009fc: SWAP12 000009fd: SWAP11 000009fe: SWAP10 000009ff: SWAP9 00000a00: SWAP8 00000a01: SWAP7 00000a02: SWAP6 00000a03: SWAP5 00000a04: SWAP4 00000a05: SWAP3 00000a06: SWAP2 00000a07: SWAP1 00000a08: PUSH3 0x0024c1 00000a0c: JUMP 00000a0d: JUMPDEST 00000a0e: PUSH1 0x40 00000a10: MLOAD 00000a11: PUSH1 0x20 00000a13: DUP2 00000a14: DUP4 00000a15: SUB 00000a16: SUB 00000a17: DUP2 00000a18: MSTORE 00000a19: SWAP1 00000a1a: PUSH1 0x40 00000a1c: MSTORE 00000a1d: DUP1 00000a1e: MLOAD 00000a1f: SWAP1 00000a20: PUSH1 0x20 00000a22: ADD 00000a23: KECCAK256 00000a24: PUSH4 0xaaaaaaaa 00000a29: PUSH3 0x000f21 00000a2d: JUMP 00000a2e: JUMPDEST 00000a2f: PUSH1 0x01 00000a31: PUSH1 0x01 00000a33: PUSH1 0xa0 00000a35: SHL 00000a36: SUB 00000a37: DUP3 00000a38: AND 00000a39: PUSH1 0x00 00000a3b: SWAP1 00000a3c: DUP2 00000a3d: MSTORE 00000a3e: PUSH1 0x02 00000a40: PUSH1 0x20 00000a42: MSTORE 00000a43: PUSH1 0x40 00000a45: DUP2 00000a46: KECCAK256 00000a47: DUP5 00000a48: SWAP1 00000a49: SSTORE 00000a4a: DUP1 00000a4b: JUMPDEST 00000a4c: DUP10 00000a4d: DUP2 00000a4e: LT 00000a4f: ISZERO 00000a50: PUSH3 0x000afa 00000a54: JUMPI 00000a55: PUSH3 0x000aba 00000a59: DUP10 00000a5a: DUP10 00000a5b: DUP4 00000a5c: DUP2 00000a5d: DUP2 00000a5e: LT 00000a5f: PUSH3 0x000a6d 00000a63: JUMPI 00000a64: PUSH3 0x000a6d 00000a68: PUSH3 0x0023e4 00000a6c: JUMP 00000a6d: JUMPDEST 00000a6e: SWAP1 00000a6f: POP 00000a70: PUSH1 0x20 00000a72: MUL 00000a73: ADD 00000a74: PUSH1 0x20 00000a76: DUP2 00000a77: ADD 00000a78: SWAP1 00000a79: PUSH3 0x000a84 00000a7d: SWAP2 00000a7e: SWAP1 00000a7f: PUSH3 0x001979 00000a83: JUMP 00000a84: JUMPDEST 00000a85: DUP13 00000a86: DUP13 00000a87: DUP5 00000a88: DUP2 00000a89: DUP2 00000a8a: LT 00000a8b: PUSH3 0x000a99 00000a8f: JUMPI 00000a90: PUSH3 0x000a99 00000a94: PUSH3 0x0023e4 00000a98: JUMP 00000a99: JUMPDEST 00000a9a: SWAP1 00000a9b: POP 00000a9c: PUSH1 0x20 00000a9e: MUL 00000a9f: ADD 00000aa0: CALLDATALOAD 00000aa1: DUP7 00000aa2: PUSH1 0x01 00000aa4: PUSH1 0x01 00000aa6: PUSH1 0xa0 00000aa8: SHL 00000aa9: SUB 00000aaa: AND 00000aab: PUSH3 0x0011b3 00000aaf: SWAP1 00000ab0: SWAP3 00000ab1: SWAP2 00000ab2: SWAP1 00000ab3: PUSH4 0xffffffff 00000ab8: AND 00000ab9: JUMP 00000aba: JUMPDEST 00000abb: DUP7 00000abc: DUP7 00000abd: DUP3 00000abe: DUP2 00000abf: DUP2 00000ac0: LT 00000ac1: PUSH3 0x000acf 00000ac5: JUMPI 00000ac6: PUSH3 0x000acf 00000aca: PUSH3 0x0023e4 00000ace: JUMP 00000acf: JUMPDEST 00000ad0: SWAP1 00000ad1: POP 00000ad2: PUSH1 0x20 00000ad4: MUL 00000ad5: ADD 00000ad6: CALLDATALOAD 00000ad7: DUP3 00000ad8: PUSH3 0x000ae3 00000adc: SWAP2 00000add: SWAP1 00000ade: PUSH3 0x0021d8 00000ae2: JUMP 00000ae3: JUMPDEST 00000ae4: SWAP2 00000ae5: POP 00000ae6: DUP1 00000ae7: PUSH3 0x000af1 00000aeb: DUP2 00000aec: PUSH3 0x0023fa 00000af0: JUMP 00000af1: JUMPDEST 00000af2: SWAP2 00000af3: POP 00000af4: POP 00000af5: PUSH3 0x000a4b 00000af9: JUMP 00000afa: JUMPDEST 00000afb: POP 00000afc: PUSH3 0x000b11 00000b00: PUSH1 0x01 00000b02: PUSH1 0x01 00000b04: PUSH1 0xa0 00000b06: SHL 00000b07: SUB 00000b08: DUP5 00000b09: AND 00000b0a: CALLER 00000b0b: DUP4 00000b0c: PUSH3 0x0011b3 00000b10: JUMP 00000b11: JUMPDEST 00000b12: POP 00000b13: PUSH1 0x05 00000b15: SLOAD 00000b16: PUSH3 0x000b22 00000b1a: SWAP1 00000b1b: PUSH1 0x01 00000b1d: PUSH3 0x0021d8 00000b21: JUMP 00000b22: JUMPDEST 00000b23: PUSH1 0x05 00000b25: DUP2 00000b26: SWAP1 00000b27: SSTORE 00000b28: PUSH1 0x40 00000b2a: MLOAD 00000b2b: SWAP1 00000b2c: DUP2 00000b2d: MSTORE 00000b2e: PUSH1 0x01 00000b30: PUSH1 0x01 00000b32: PUSH1 0xa0 00000b34: SHL 00000b35: SUB 00000b36: DUP4 00000b37: AND 00000b38: SWAP1 00000b39: DUP5 00000b3a: SWAP1 00000b3b: PUSH32 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708 00000b5c: SWAP1 00000b5d: PUSH1 0x20 00000b5f: ADD 00000b60: PUSH1 0x40 00000b62: MLOAD 00000b63: DUP1 00000b64: SWAP2 00000b65: SUB 00000b66: SWAP1 00000b67: LOG3 00000b68: POP 00000b69: POP 00000b6a: PUSH1 0x01 00000b6c: PUSH1 0x00 00000b6e: SSTORE 00000b6f: POP 00000b70: POP 00000b71: POP 00000b72: POP 00000b73: POP 00000b74: POP 00000b75: POP 00000b76: POP 00000b77: POP 00000b78: POP 00000b79: JUMP 00000b7a: JUMPDEST 00000b7b: DUP3 00000b7c: PUSH1 0x40 00000b7e: ADD 00000b7f: CALLDATALOAD 00000b80: DUP5 00000b81: PUSH1 0x40 00000b83: ADD 00000b84: CALLDATALOAD 00000b85: GT 00000b86: PUSH3 0x000bb3 00000b8a: JUMPI 00000b8b: PUSH1 0x40 00000b8d: DUP1 00000b8e: MLOAD 00000b8f: PUSH4 0xe0e8edf3 00000b94: PUSH1 0xe0 00000b96: SHL 00000b97: DUP2 00000b98: MSTORE 00000b99: DUP2 00000b9a: DUP7 00000b9b: ADD 00000b9c: CALLDATALOAD 00000b9d: PUSH1 0x04 00000b9f: DUP3 00000ba0: ADD 00000ba1: MSTORE 00000ba2: SWAP1 00000ba3: DUP5 00000ba4: ADD 00000ba5: CALLDATALOAD 00000ba6: PUSH1 0x24 00000ba8: DUP3 00000ba9: ADD 00000baa: MSTORE 00000bab: PUSH1 0x44 00000bad: ADD 00000bae: PUSH3 0x0002f4 00000bb2: JUMP 00000bb3: JUMPDEST 00000bb4: PUSH3 0x000bc6 00000bb8: PUSH1 0x40 00000bba: DUP5 00000bbb: ADD 00000bbc: CALLDATALOAD 00000bbd: PUSH3 0x0f4240 00000bc1: PUSH3 0x0021d8 00000bc5: JUMP 00000bc6: JUMPDEST 00000bc7: DUP5 00000bc8: PUSH1 0x40 00000bca: ADD 00000bcb: CALLDATALOAD 00000bcc: GT 00000bcd: ISZERO 00000bce: PUSH3 0x000bfb 00000bd2: JUMPI 00000bd3: PUSH1 0x40 00000bd5: DUP1 00000bd6: MLOAD 00000bd7: PUSH4 0xe0e8edf3 00000bdc: PUSH1 0xe0 00000bde: SHL 00000bdf: DUP2 00000be0: MSTORE 00000be1: DUP2 00000be2: DUP7 00000be3: ADD 00000be4: CALLDATALOAD 00000be5: PUSH1 0x04 00000be7: DUP3 00000be8: ADD 00000be9: MSTORE 00000bea: SWAP1 00000beb: DUP5 00000bec: ADD 00000bed: CALLDATALOAD 00000bee: PUSH1 0x24 00000bf0: DUP3 00000bf1: ADD 00000bf2: MSTORE 00000bf3: PUSH1 0x44 00000bf5: ADD 00000bf6: PUSH3 0x0002f4 00000bfa: JUMP 00000bfb: JUMPDEST 00000bfc: PUSH3 0x000c0a 00000c00: PUSH1 0x20 00000c02: DUP6 00000c03: ADD 00000c04: DUP6 00000c05: PUSH3 0x00253f 00000c09: JUMP 00000c0a: JUMPDEST 00000c0b: SWAP1 00000c0c: POP 00000c0d: PUSH3 0x000c18 00000c11: DUP6 00000c12: DUP1 00000c13: PUSH3 0x00253f 00000c17: JUMP 00000c18: JUMPDEST 00000c19: SWAP1 00000c1a: POP 00000c1b: EQ 00000c1c: ISZERO 00000c1d: DUP1 00000c1e: PUSH3 0x000c33 00000c22: JUMPI 00000c23: POP 00000c24: PUSH3 0x000c2f 00000c28: DUP5 00000c29: DUP1 00000c2a: PUSH3 0x00253f 00000c2e: JUMP 00000c2f: JUMPDEST 00000c30: ISZERO 00000c31: SWAP1 00000c32: POP 00000c33: JUMPDEST 00000c34: ISZERO 00000c35: PUSH3 0x000c52 00000c39: JUMPI 00000c3a: PUSH1 0x40 00000c3c: MLOAD 00000c3d: PUSH4 0xc01ba0ab 00000c42: PUSH1 0xe0 00000c44: SHL 00000c45: DUP2 00000c46: MSTORE 00000c47: PUSH1 0x04 00000c49: ADD 00000c4a: PUSH1 0x40 00000c4c: MLOAD 00000c4d: DUP1 00000c4e: SWAP2 00000c4f: SUB 00000c50: SWAP1 00000c51: REVERT 00000c52: JUMPDEST 00000c53: PUSH3 0x000c5f 00000c57: DUP4 00000c58: DUP4 00000c59: DUP4 00000c5a: PUSH3 0x00115a 00000c5e: JUMP 00000c5f: JUMPDEST 00000c60: PUSH1 0x00 00000c62: DUP1 00000c63: JUMPDEST 00000c64: PUSH3 0x000c72 00000c68: PUSH1 0x20 00000c6a: DUP8 00000c6b: ADD 00000c6c: DUP8 00000c6d: PUSH3 0x00253f 00000c71: JUMP 00000c72: JUMPDEST 00000c73: SWAP1 00000c74: POP 00000c75: DUP2 00000c76: LT 00000c77: ISZERO 00000c78: PUSH3 0x000cdc 00000c7c: JUMPI 00000c7d: PUSH3 0x000c8b 00000c81: PUSH1 0x20 00000c83: DUP8 00000c84: ADD 00000c85: DUP8 00000c86: PUSH3 0x00253f 00000c8a: JUMP 00000c8b: JUMPDEST 00000c8c: DUP3 00000c8d: DUP2 00000c8e: DUP2 00000c8f: LT 00000c90: PUSH3 0x000c9e 00000c94: JUMPI 00000c95: PUSH3 0x000c9e 00000c99: PUSH3 0x0023e4 00000c9d: JUMP 00000c9e: JUMPDEST 00000c9f: SWAP1 00000ca0: POP 00000ca1: PUSH1 0x20 00000ca3: MUL 00000ca4: ADD 00000ca5: CALLDATALOAD 00000ca6: DUP3 00000ca7: PUSH3 0x000cb2 00000cab: SWAP2 00000cac: SWAP1 00000cad: PUSH3 0x0021d8 00000cb1: JUMP 00000cb2: JUMPDEST 00000cb3: SWAP2 00000cb4: POP 00000cb5: PUSH4 0xaaaaaaaa 00000cba: DUP3 00000cbb: GT 00000cbc: ISZERO 00000cbd: PUSH3 0x000cc7 00000cc1: JUMPI 00000cc2: PUSH3 0x000cdc 00000cc6: JUMP 00000cc7: JUMPDEST 00000cc8: DUP1 00000cc9: PUSH3 0x000cd3 00000ccd: DUP2 00000cce: PUSH3 0x0023fa 00000cd2: JUMP 00000cd3: JUMPDEST 00000cd4: SWAP2 00000cd5: POP 00000cd6: POP 00000cd7: PUSH3 0x000c63 00000cdb: JUMP 00000cdc: JUMPDEST 00000cdd: POP 00000cde: PUSH4 0xaaaaaaaa 00000ce3: DUP2 00000ce4: GT 00000ce5: PUSH3 0x000d0f 00000ce9: JUMPI 00000cea: PUSH1 0x40 00000cec: MLOAD 00000ced: PUSH3 0xbfb6ab 00000cf1: PUSH1 0xe0 00000cf3: SHL 00000cf4: DUP2 00000cf5: MSTORE 00000cf6: PUSH1 0x04 00000cf8: DUP2 00000cf9: ADD 00000cfa: DUP3 00000cfb: SWAP1 00000cfc: MSTORE 00000cfd: PUSH4 0xaaaaaaaa 00000d02: PUSH1 0x24 00000d04: DUP3 00000d05: ADD 00000d06: MSTORE 00000d07: PUSH1 0x44 00000d09: ADD 00000d0a: PUSH3 0x0002f4 00000d0e: JUMP 00000d0f: JUMPDEST 00000d10: PUSH1 0x01 00000d12: SLOAD 00000d13: PUSH3 0x000d21 00000d17: PUSH3 0x00055c 00000d1b: DUP7 00000d1c: PUSH3 0x0020bb 00000d20: JUMP 00000d21: JUMPDEST 00000d22: EQ 00000d23: PUSH3 0x000d40 00000d27: JUMPI 00000d28: PUSH1 0x40 00000d2a: MLOAD 00000d2b: PUSH4 0x723a3403 00000d30: PUSH1 0xe0 00000d32: SHL 00000d33: DUP2 00000d34: MSTORE 00000d35: PUSH1 0x04 00000d37: ADD 00000d38: PUSH1 0x40 00000d3a: MLOAD 00000d3b: DUP1 00000d3c: SWAP2 00000d3d: SUB 00000d3e: SWAP1 00000d3f: REVERT 00000d40: JUMPDEST 00000d41: PUSH1 0x00 00000d43: PUSH3 0x000d51 00000d47: PUSH3 0x00055c 00000d4b: DUP8 00000d4c: PUSH3 0x0020bb 00000d50: JUMP 00000d51: JUMPDEST 00000d52: SWAP1 00000d53: POP 00000d54: PUSH3 0x000d66 00000d58: DUP6 00000d59: DUP6 00000d5a: DUP6 00000d5b: DUP5 00000d5c: PUSH4 0xaaaaaaaa 00000d61: PUSH3 0x000f21 00000d65: JUMP 00000d66: JUMPDEST 00000d67: PUSH1 0x01 00000d69: DUP2 00000d6a: SWAP1 00000d6b: SSTORE 00000d6c: PUSH1 0x40 00000d6e: DUP7 00000d6f: ADD 00000d70: CALLDATALOAD 00000d71: PUSH1 0x04 00000d73: SSTORE 00000d74: PUSH1 0x00 00000d76: PUSH3 0x000d87 00000d7a: PUSH1 0xa0 00000d7c: DUP9 00000d7d: ADD 00000d7e: PUSH1 0x80 00000d80: DUP10 00000d81: ADD 00000d82: PUSH3 0x001979 00000d86: JUMP 00000d87: JUMPDEST 00000d88: PUSH1 0x01 00000d8a: PUSH1 0x01 00000d8c: PUSH1 0xa0 00000d8e: SHL 00000d8f: SUB 00000d90: AND 00000d91: EQ 00000d92: ISZERO 00000d93: DUP1 00000d94: ISZERO 00000d95: PUSH3 0x000da2 00000d99: JUMPI 00000d9a: POP 00000d9b: PUSH1 0x60 00000d9d: DUP7 00000d9e: ADD 00000d9f: CALLDATALOAD 00000da0: ISZERO 00000da1: ISZERO 00000da2: JUMPDEST 00000da3: ISZERO 00000da4: PUSH3 0x000dd5 00000da8: JUMPI 00000da9: PUSH3 0x000dd5 00000dad: CALLER 00000dae: PUSH1 0x60 00000db0: DUP9 00000db1: ADD 00000db2: CALLDATALOAD 00000db3: PUSH3 0x000dc4 00000db7: PUSH1 0xa0 00000db9: DUP11 00000dba: ADD 00000dbb: PUSH1 0x80 00000dbd: DUP12 00000dbe: ADD 00000dbf: PUSH3 0x001979 00000dc3: JUMP 00000dc4: JUMPDEST 00000dc5: PUSH1 0x01 00000dc7: PUSH1 0x01 00000dc9: PUSH1 0xa0 00000dcb: SHL 00000dcc: SUB 00000dcd: AND 00000dce: SWAP2 00000dcf: SWAP1 00000dd0: PUSH3 0x0011b3 00000dd4: JUMP 00000dd5: JUMPDEST 00000dd6: PUSH1 0x05 00000dd8: SLOAD 00000dd9: PUSH3 0x000de5 00000ddd: SWAP1 00000dde: PUSH1 0x01 00000de0: PUSH3 0x0021d8 00000de4: JUMP 00000de5: JUMPDEST 00000de6: PUSH1 0x05 00000de8: DUP2 00000de9: SWAP1 00000dea: SSTORE 00000deb: PUSH1 0x40 00000ded: DUP8 00000dee: ADD 00000def: CALLDATALOAD 00000df0: SWAP1 00000df1: PUSH32 0x76d08978c024a4bf8cbb30c67fd78fcaa1827cbc533e4e175f36d07e64ccf96a 00000e12: SWAP1 00000e13: PUSH1 0x60 00000e15: DUP10 00000e16: ADD 00000e17: CALLDATALOAD 00000e18: PUSH3 0x000e29 00000e1c: PUSH1 0xa0 00000e1e: DUP12 00000e1f: ADD 00000e20: PUSH1 0x80 00000e22: DUP13 00000e23: ADD 00000e24: PUSH3 0x001979 00000e28: JUMP 00000e29: JUMPDEST 00000e2a: PUSH3 0x000e35 00000e2e: DUP12 00000e2f: DUP1 00000e30: PUSH3 0x00253f 00000e34: JUMP 00000e35: JUMPDEST 00000e36: PUSH3 0x000e44 00000e3a: PUSH1 0x20 00000e3c: DUP15 00000e3d: ADD 00000e3e: DUP15 00000e3f: PUSH3 0x00253f 00000e43: JUMP 00000e44: JUMPDEST 00000e45: PUSH1 0x40 00000e47: MLOAD 00000e48: PUSH3 0x000e59 00000e4c: SWAP8 00000e4d: SWAP7 00000e4e: SWAP6 00000e4f: SWAP5 00000e50: SWAP4 00000e51: SWAP3 00000e52: SWAP2 00000e53: SWAP1 00000e54: PUSH3 0x00258b 00000e58: JUMP 00000e59: JUMPDEST 00000e5a: PUSH1 0x40 00000e5c: MLOAD 00000e5d: DUP1 00000e5e: SWAP2 00000e5f: SUB 00000e60: SWAP1 00000e61: LOG2 00000e62: POP 00000e63: POP 00000e64: POP 00000e65: POP 00000e66: POP 00000e67: POP 00000e68: JUMP 00000e69: JUMPDEST 00000e6a: PUSH1 0x00 00000e6c: ADDRESS 00000e6d: DUP7 00000e6e: DUP7 00000e6f: DUP7 00000e70: DUP7 00000e71: DUP7 00000e72: PUSH1 0x40 00000e74: MLOAD 00000e75: PUSH3 0x000e7f 00000e79: SWAP1 00000e7a: PUSH3 0x00181e 00000e7e: JUMP 00000e7f: JUMPDEST 00000e80: PUSH3 0x000e90 00000e84: SWAP7 00000e85: SWAP6 00000e86: SWAP5 00000e87: SWAP4 00000e88: SWAP3 00000e89: SWAP2 00000e8a: SWAP1 00000e8b: PUSH3 0x0025de 00000e8f: JUMP 00000e90: JUMPDEST 00000e91: PUSH1 0x40 00000e93: MLOAD 00000e94: DUP1 00000e95: SWAP2 00000e96: SUB 00000e97: SWAP1 00000e98: PUSH1 0x00 00000e9a: CREATE 00000e9b: DUP1 00000e9c: ISZERO 00000e9d: DUP1 00000e9e: ISZERO 00000e9f: PUSH3 0x000ead 00000ea3: JUMPI 00000ea4: RETURNDATASIZE 00000ea5: PUSH1 0x00 00000ea7: DUP1 00000ea8: RETURNDATACOPY 00000ea9: RETURNDATASIZE 00000eaa: PUSH1 0x00 00000eac: REVERT 00000ead: JUMPDEST 00000eae: POP 00000eaf: SWAP1 00000eb0: POP 00000eb1: PUSH1 0x05 00000eb3: SLOAD 00000eb4: PUSH1 0x01 00000eb6: PUSH3 0x000ec1 00000eba: SWAP2 00000ebb: SWAP1 00000ebc: PUSH3 0x0021d8 00000ec0: JUMP 00000ec1: JUMPDEST 00000ec2: PUSH1 0x05 00000ec4: DUP2 00000ec5: SWAP1 00000ec6: SSTORE 00000ec7: PUSH1 0x40 00000ec9: MLOAD 00000eca: PUSH1 0x01 00000ecc: PUSH1 0x01 00000ece: PUSH1 0xa0 00000ed0: SHL 00000ed1: SUB 00000ed2: DUP4 00000ed3: AND 00000ed4: SWAP2 00000ed5: PUSH32 0x82fe3a4fa49c6382d0c085746698ddbbafe6c2bf61285b19410644b5b26287c7 00000ef6: SWAP2 00000ef7: PUSH3 0x000f0f 00000efb: SWAP2 00000efc: DUP13 00000efd: SWAP2 00000efe: DUP13 00000eff: SWAP2 00000f00: DUP13 00000f01: SWAP2 00000f02: DUP13 00000f03: SWAP2 00000f04: DUP13 00000f05: SWAP2 00000f06: DUP13 00000f07: SWAP2 00000f08: DUP13 00000f09: SWAP2 00000f0a: PUSH3 0x002631 00000f0e: JUMP 00000f0f: JUMPDEST 00000f10: PUSH1 0x40 00000f12: MLOAD 00000f13: DUP1 00000f14: SWAP2 00000f15: SUB 00000f16: SWAP1 00000f17: LOG2 00000f18: POP 00000f19: POP 00000f1a: POP 00000f1b: POP 00000f1c: POP 00000f1d: POP 00000f1e: POP 00000f1f: POP 00000f20: JUMP 00000f21: JUMPDEST 00000f22: PUSH1 0x00 00000f24: DUP1 00000f25: JUMPDEST 00000f26: PUSH3 0x000f31 00000f2a: DUP8 00000f2b: DUP1 00000f2c: PUSH3 0x00253f 00000f30: JUMP 00000f31: JUMPDEST 00000f32: SWAP1 00000f33: POP 00000f34: DUP2 00000f35: LT 00000f36: ISZERO 00000f37: PUSH3 0x001047 00000f3b: JUMPI 00000f3c: DUP6 00000f3d: DUP6 00000f3e: DUP3 00000f3f: DUP2 00000f40: DUP2 00000f41: LT 00000f42: PUSH3 0x000f50 00000f46: JUMPI 00000f47: PUSH3 0x000f50 00000f4b: PUSH3 0x0023e4 00000f4f: JUMP 00000f50: JUMPDEST 00000f51: PUSH3 0x000f68 00000f55: SWAP3 00000f56: PUSH1 0x20 00000f58: PUSH1 0x60 00000f5a: SWAP1 00000f5b: SWAP3 00000f5c: MUL 00000f5d: ADD 00000f5e: SWAP1 00000f5f: DUP2 00000f60: ADD 00000f61: SWAP2 00000f62: POP 00000f63: PUSH3 0x00268e 00000f67: JUMP 00000f68: JUMPDEST 00000f69: PUSH1 0xff 00000f6b: AND 00000f6c: ISZERO 00000f6d: PUSH3 0x001032 00000f71: JUMPI 00000f72: PUSH3 0x000fcd 00000f76: PUSH3 0x000f81 00000f7a: DUP9 00000f7b: DUP1 00000f7c: PUSH3 0x00253f 00000f80: JUMP 00000f81: JUMPDEST 00000f82: DUP4 00000f83: DUP2 00000f84: DUP2 00000f85: LT 00000f86: PUSH3 0x000f94 00000f8a: JUMPI 00000f8b: PUSH3 0x000f94 00000f8f: PUSH3 0x0023e4 00000f93: JUMP 00000f94: JUMPDEST 00000f95: SWAP1 00000f96: POP 00000f97: PUSH1 0x20 00000f99: MUL 00000f9a: ADD 00000f9b: PUSH1 0x20 00000f9d: DUP2 00000f9e: ADD 00000f9f: SWAP1 00000fa0: PUSH3 0x000fab 00000fa4: SWAP2 00000fa5: SWAP1 00000fa6: PUSH3 0x001979 00000faa: JUMP 00000fab: JUMPDEST 00000fac: DUP6 00000fad: DUP9 00000fae: DUP9 00000faf: DUP6 00000fb0: DUP2 00000fb1: DUP2 00000fb2: LT 00000fb3: PUSH3 0x000fc1 00000fb7: JUMPI 00000fb8: PUSH3 0x000fc1 00000fbc: PUSH3 0x0023e4 00000fc0: JUMP 00000fc1: JUMPDEST 00000fc2: SWAP1 00000fc3: POP 00000fc4: PUSH1 0x60 00000fc6: MUL 00000fc7: ADD 00000fc8: PUSH3 0x001230 00000fcc: JUMP 00000fcd: JUMPDEST 00000fce: PUSH3 0x000feb 00000fd2: JUMPI 00000fd3: PUSH1 0x40 00000fd5: MLOAD 00000fd6: PUSH4 0x8baa579f 00000fdb: PUSH1 0xe0 00000fdd: SHL 00000fde: DUP2 00000fdf: MSTORE 00000fe0: PUSH1 0x04 00000fe2: ADD 00000fe3: PUSH1 0x40 00000fe5: MLOAD 00000fe6: DUP1 00000fe7: SWAP2 00000fe8: SUB 00000fe9: SWAP1 00000fea: REVERT 00000feb: JUMPDEST 00000fec: PUSH3 0x000ffa 00000ff0: PUSH1 0x20 00000ff2: DUP9 00000ff3: ADD 00000ff4: DUP9 00000ff5: PUSH3 0x00253f 00000ff9: JUMP 00000ffa: JUMPDEST 00000ffb: DUP3 00000ffc: DUP2 00000ffd: DUP2 00000ffe: LT 00000fff: PUSH3 0x00100d 00001003: JUMPI 00001004: PUSH3 0x00100d 00001008: PUSH3 0x0023e4 0000100c: JUMP 0000100d: JUMPDEST 0000100e: SWAP1 0000100f: POP 00001010: PUSH1 0x20 00001012: MUL 00001013: ADD 00001014: CALLDATALOAD 00001015: DUP3 00001016: PUSH3 0x001021 0000101a: SWAP2 0000101b: SWAP1 0000101c: PUSH3 0x0021d8 00001020: JUMP 00001021: JUMPDEST 00001022: SWAP2 00001023: POP 00001024: DUP3 00001025: DUP3 00001026: GT 00001027: ISZERO 00001028: PUSH3 0x001032 0000102c: JUMPI 0000102d: PUSH3 0x001047 00001031: JUMP 00001032: JUMPDEST 00001033: DUP1 00001034: PUSH3 0x00103e 00001038: DUP2 00001039: PUSH3 0x0023fa 0000103d: JUMP 0000103e: JUMPDEST 0000103f: SWAP2 00001040: POP 00001041: POP 00001042: PUSH3 0x000f25 00001046: JUMP 00001047: JUMPDEST 00001048: POP 00001049: DUP2 0000104a: DUP2 0000104b: GT 0000104c: PUSH3 0x001073 00001050: JUMPI 00001051: PUSH1 0x40 00001053: MLOAD 00001054: PUSH3 0xbfb6ab 00001058: PUSH1 0xe0 0000105a: SHL 0000105b: DUP2 0000105c: MSTORE 0000105d: PUSH1 0x04 0000105f: DUP2 00001060: ADD 00001061: DUP3 00001062: SWAP1 00001063: MSTORE 00001064: PUSH1 0x24 00001066: DUP2 00001067: ADD 00001068: DUP4 00001069: SWAP1 0000106a: MSTORE 0000106b: PUSH1 0x44 0000106d: ADD 0000106e: PUSH3 0x0002f4 00001072: JUMP 00001073: JUMPDEST 00001074: POP 00001075: POP 00001076: POP 00001077: POP 00001078: POP 00001079: POP 0000107a: JUMP 0000107b: JUMPDEST 0000107c: PUSH1 0x00 0000107e: DUP1 0000107f: PUSH10 0x18da1958dadc1bda5b9d 0000108a: PUSH1 0xb2 0000108c: SHL 0000108d: PUSH1 0x00 0000108f: SHL 00001090: SWAP1 00001091: POP 00001092: PUSH1 0x00 00001094: DUP4 00001095: DUP3 00001096: DUP7 00001097: PUSH1 0x40 00001099: ADD 0000109a: MLOAD 0000109b: DUP8 0000109c: PUSH1 0x00 0000109e: ADD 0000109f: MLOAD 000010a0: DUP9 000010a1: PUSH1 0x20 000010a3: ADD 000010a4: MLOAD 000010a5: DUP10 000010a6: PUSH1 0x60 000010a8: ADD 000010a9: MLOAD 000010aa: DUP11 000010ab: PUSH1 0x80 000010ad: ADD 000010ae: MLOAD 000010af: PUSH1 0x40 000010b1: MLOAD 000010b2: PUSH1 0x20 000010b4: ADD 000010b5: PUSH3 0x0010c6 000010b9: SWAP8 000010ba: SWAP7 000010bb: SWAP6 000010bc: SWAP5 000010bd: SWAP4 000010be: SWAP3 000010bf: SWAP2 000010c0: SWAP1 000010c1: PUSH3 0x0026ac 000010c5: JUMP 000010c6: JUMPDEST 000010c7: PUSH1 0x40 000010c9: DUP1 000010ca: MLOAD 000010cb: DUP1 000010cc: DUP4 000010cd: SUB 000010ce: PUSH1 0x1f 000010d0: NOT 000010d1: ADD 000010d2: DUP2 000010d3: MSTORE 000010d4: SWAP2 000010d5: SWAP1 000010d6: MSTORE 000010d7: DUP1 000010d8: MLOAD 000010d9: PUSH1 0x20 000010db: SWAP1 000010dc: SWAP2 000010dd: ADD 000010de: KECCAK256 000010df: SWAP6 000010e0: SWAP5 000010e1: POP 000010e2: POP 000010e3: POP 000010e4: POP 000010e5: POP 000010e6: JUMP 000010e7: JUMPDEST 000010e8: PUSH1 0x40 000010ea: MLOAD 000010eb: PUSH1 0x01 000010ed: PUSH1 0x01 000010ef: PUSH1 0xa0 000010f1: SHL 000010f2: SUB 000010f3: DUP1 000010f4: DUP6 000010f5: AND 000010f6: PUSH1 0x24 000010f8: DUP4 000010f9: ADD 000010fa: MSTORE 000010fb: DUP4 000010fc: AND 000010fd: PUSH1 0x44 000010ff: DUP3 00001100: ADD 00001101: MSTORE 00001102: PUSH1 0x64 00001104: DUP2 00001105: ADD 00001106: DUP3 00001107: SWAP1 00001108: MSTORE 00001109: PUSH3 0x001154 0000110d: SWAP1 0000110e: DUP6 0000110f: SWAP1 00001110: PUSH4 0x23b872dd 00001115: PUSH1 0xe0 00001117: SHL 00001118: SWAP1 00001119: PUSH1 0x84 0000111b: ADD 0000111c: JUMPDEST 0000111d: PUSH1 0x40 0000111f: DUP1 00001120: MLOAD 00001121: PUSH1 0x1f 00001123: NOT 00001124: DUP2 00001125: DUP5 00001126: SUB 00001127: ADD 00001128: DUP2 00001129: MSTORE 0000112a: SWAP2 0000112b: SWAP1 0000112c: MSTORE 0000112d: PUSH1 0x20 0000112f: DUP2 00001130: ADD 00001131: DUP1 00001132: MLOAD 00001133: PUSH1 0x01 00001135: PUSH1 0x01 00001137: PUSH1 0xe0 00001139: SHL 0000113a: SUB 0000113b: AND 0000113c: PUSH1 0x01 0000113e: PUSH1 0x01 00001140: PUSH1 0xe0 00001142: SHL 00001143: SUB 00001144: NOT 00001145: SWAP1 00001146: SWAP4 00001147: AND 00001148: SWAP3 00001149: SWAP1 0000114a: SWAP3 0000114b: OR 0000114c: SWAP1 0000114d: SWAP2 0000114e: MSTORE 0000114f: PUSH3 0x0012c5 00001153: JUMP 00001154: JUMPDEST 00001155: POP 00001156: POP 00001157: POP 00001158: POP 00001159: JUMP 0000115a: JUMPDEST 0000115b: PUSH3 0x001169 0000115f: PUSH1 0x20 00001161: DUP5 00001162: ADD 00001163: DUP5 00001164: PUSH3 0x00253f 00001168: JUMP 00001169: JUMPDEST 0000116a: SWAP1 0000116b: POP 0000116c: PUSH3 0x001177 00001170: DUP5 00001171: DUP1 00001172: PUSH3 0x00253f 00001176: JUMP 00001177: JUMPDEST 00001178: SWAP1 00001179: POP 0000117a: EQ 0000117b: ISZERO 0000117c: DUP1 0000117d: PUSH3 0x001194 00001181: JUMPI 00001182: POP 00001183: DUP1 00001184: PUSH3 0x00118f 00001188: DUP5 00001189: DUP1 0000118a: PUSH3 0x00253f 0000118e: JUMP 0000118f: JUMPDEST 00001190: SWAP1 00001191: POP 00001192: EQ 00001193: ISZERO 00001194: JUMPDEST 00001195: ISZERO 00001196: PUSH3 0x0002c9 0000119a: JUMPI 0000119b: PUSH1 0x40 0000119d: MLOAD 0000119e: PUSH4 0xc6617b7b 000011a3: PUSH1 0xe0 000011a5: SHL 000011a6: DUP2 000011a7: MSTORE 000011a8: PUSH1 0x04 000011aa: ADD 000011ab: PUSH1 0x40 000011ad: MLOAD 000011ae: DUP1 000011af: SWAP2 000011b0: SUB 000011b1: SWAP1 000011b2: REVERT 000011b3: JUMPDEST 000011b4: PUSH1 0x40 000011b6: MLOAD 000011b7: PUSH1 0x01 000011b9: PUSH1 0x01 000011bb: PUSH1 0xa0 000011bd: SHL 000011be: SUB 000011bf: DUP4 000011c0: AND 000011c1: PUSH1 0x24 000011c3: DUP3 000011c4: ADD 000011c5: MSTORE 000011c6: PUSH1 0x44 000011c8: DUP2 000011c9: ADD 000011ca: DUP3 000011cb: SWAP1 000011cc: MSTORE 000011cd: PUSH3 0x0002c9 000011d1: SWAP1 000011d2: DUP5 000011d3: SWAP1 000011d4: PUSH4 0xa9059cbb 000011d9: PUSH1 0xe0 000011db: SHL 000011dc: SWAP1 000011dd: PUSH1 0x64 000011df: ADD 000011e0: PUSH3 0x00111c 000011e4: JUMP 000011e5: JUMPDEST 000011e6: PUSH1 0x60 000011e8: PUSH3 0x001229 000011ec: DUP4 000011ed: DUP4 000011ee: PUSH1 0x40 000011f0: MLOAD 000011f1: DUP1 000011f2: PUSH1 0x40 000011f4: ADD 000011f5: PUSH1 0x40 000011f7: MSTORE 000011f8: DUP1 000011f9: PUSH1 0x1e 000011fb: DUP2 000011fc: MSTORE 000011fd: PUSH1 0x20 000011ff: ADD 00001200: PUSH32 0x416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000 00001221: DUP2 00001222: MSTORE 00001223: POP 00001224: PUSH3 0x00139e 00001228: JUMP 00001229: JUMPDEST 0000122a: SWAP4 0000122b: SWAP3 0000122c: POP 0000122d: POP 0000122e: POP 0000122f: JUMP 00001230: JUMPDEST 00001231: PUSH1 0x40 00001233: MLOAD 00001234: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00001255: PUSH1 0x20 00001257: DUP3 00001258: ADD 00001259: MSTORE 0000125a: PUSH1 0x3c 0000125c: DUP2 0000125d: ADD 0000125e: DUP4 0000125f: SWAP1 00001260: MSTORE 00001261: PUSH1 0x00 00001263: SWAP1 00001264: DUP2 00001265: SWAP1 00001266: PUSH1 0x5c 00001268: ADD 00001269: PUSH1 0x40 0000126b: DUP1 0000126c: MLOAD 0000126d: PUSH1 0x1f 0000126f: NOT 00001270: DUP2 00001271: DUP5 00001272: SUB 00001273: ADD 00001274: DUP2 00001275: MSTORE 00001276: SWAP2 00001277: SWAP1 00001278: MSTORE 00001279: DUP1 0000127a: MLOAD 0000127b: PUSH1 0x20 0000127d: SWAP2 0000127e: DUP3 0000127f: ADD 00001280: KECCAK256 00001281: SWAP2 00001282: POP 00001283: PUSH3 0x0012a7 00001287: SWAP1 00001288: DUP3 00001289: SWAP1 0000128a: PUSH3 0x001297 0000128e: SWAP1 0000128f: DUP7 00001290: ADD 00001291: DUP7 00001292: PUSH3 0x00268e 00001296: JUMP 00001297: JUMPDEST 00001298: DUP6 00001299: PUSH1 0x20 0000129b: ADD 0000129c: CALLDATALOAD 0000129d: DUP7 0000129e: PUSH1 0x40 000012a0: ADD 000012a1: CALLDATALOAD 000012a2: PUSH3 0x0013b7 000012a6: JUMP 000012a7: JUMPDEST 000012a8: PUSH1 0x01 000012aa: PUSH1 0x01 000012ac: PUSH1 0xa0 000012ae: SHL 000012af: SUB 000012b0: AND 000012b1: DUP6 000012b2: PUSH1 0x01 000012b4: PUSH1 0x01 000012b6: PUSH1 0xa0 000012b8: SHL 000012b9: SUB 000012ba: AND 000012bb: EQ 000012bc: SWAP2 000012bd: POP 000012be: POP 000012bf: SWAP4 000012c0: SWAP3 000012c1: POP 000012c2: POP 000012c3: POP 000012c4: JUMP 000012c5: JUMPDEST 000012c6: PUSH1 0x00 000012c8: PUSH3 0x00131c 000012cc: DUP3 000012cd: PUSH1 0x40 000012cf: MLOAD 000012d0: DUP1 000012d1: PUSH1 0x40 000012d3: ADD 000012d4: PUSH1 0x40 000012d6: MSTORE 000012d7: DUP1 000012d8: PUSH1 0x20 000012da: DUP2 000012db: MSTORE 000012dc: PUSH1 0x20 000012de: ADD 000012df: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00001300: DUP2 00001301: MSTORE 00001302: POP 00001303: DUP6 00001304: PUSH1 0x01 00001306: PUSH1 0x01 00001308: PUSH1 0xa0 0000130a: SHL 0000130b: SUB 0000130c: AND 0000130d: PUSH3 0x00139e 00001311: SWAP1 00001312: SWAP3 00001313: SWAP2 00001314: SWAP1 00001315: PUSH4 0xffffffff 0000131a: AND 0000131b: JUMP 0000131c: JUMPDEST 0000131d: DUP1 0000131e: MLOAD 0000131f: SWAP1 00001320: SWAP2 00001321: POP 00001322: ISZERO 00001323: PUSH3 0x0002c9 00001327: JUMPI 00001328: DUP1 00001329: DUP1 0000132a: PUSH1 0x20 0000132c: ADD 0000132d: SWAP1 0000132e: MLOAD 0000132f: DUP2 00001330: ADD 00001331: SWAP1 00001332: PUSH3 0x00133d 00001336: SWAP2 00001337: SWAP1 00001338: PUSH3 0x00270c 0000133c: JUMP 0000133d: JUMPDEST 0000133e: PUSH3 0x0002c9 00001342: JUMPI 00001343: PUSH1 0x40 00001345: MLOAD 00001346: PUSH3 0x461bcd 0000134a: PUSH1 0xe5 0000134c: SHL 0000134d: DUP2 0000134e: MSTORE 0000134f: PUSH1 0x20 00001351: PUSH1 0x04 00001353: DUP3 00001354: ADD 00001355: MSTORE 00001356: PUSH1 0x2a 00001358: PUSH1 0x24 0000135a: DUP3 0000135b: ADD 0000135c: MSTORE 0000135d: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 0000137e: PUSH1 0x44 00001380: DUP3 00001381: ADD 00001382: MSTORE 00001383: PUSH10 0x1bdd081cdd58d8d95959 0000138e: PUSH1 0xb2 00001390: SHL 00001391: PUSH1 0x64 00001393: DUP3 00001394: ADD 00001395: MSTORE 00001396: PUSH1 0x84 00001398: ADD 00001399: PUSH3 0x0002f4 0000139d: JUMP 0000139e: JUMPDEST 0000139f: PUSH1 0x60 000013a1: PUSH3 0x0013af 000013a5: DUP5 000013a6: DUP5 000013a7: PUSH1 0x00 000013a9: DUP6 000013aa: PUSH3 0x0013e3 000013ae: JUMP 000013af: JUMPDEST 000013b0: SWAP5 000013b1: SWAP4 000013b2: POP 000013b3: POP 000013b4: POP 000013b5: POP 000013b6: JUMP 000013b7: JUMPDEST 000013b8: PUSH1 0x00 000013ba: DUP1 000013bb: PUSH1 0x00 000013bd: PUSH3 0x0013ca 000013c1: DUP8 000013c2: DUP8 000013c3: DUP8 000013c4: DUP8 000013c5: PUSH3 0x001515 000013c9: JUMP 000013ca: JUMPDEST 000013cb: SWAP2 000013cc: POP 000013cd: SWAP2 000013ce: POP 000013cf: PUSH3 0x0013d9 000013d3: DUP2 000013d4: PUSH3 0x00160a 000013d8: JUMP 000013d9: JUMPDEST 000013da: POP 000013db: SWAP6 000013dc: SWAP5 000013dd: POP 000013de: POP 000013df: POP 000013e0: POP 000013e1: POP 000013e2: JUMP 000013e3: JUMPDEST 000013e4: PUSH1 0x60 000013e6: DUP3 000013e7: SELFBALANCE 000013e8: LT 000013e9: ISZERO 000013ea: PUSH3 0x001446 000013ee: JUMPI 000013ef: PUSH1 0x40 000013f1: MLOAD 000013f2: PUSH3 0x461bcd 000013f6: PUSH1 0xe5 000013f8: SHL 000013f9: DUP2 000013fa: MSTORE 000013fb: PUSH1 0x20 000013fd: PUSH1 0x04 000013ff: DUP3 00001400: ADD 00001401: MSTORE 00001402: PUSH1 0x26 00001404: PUSH1 0x24 00001406: DUP3 00001407: ADD 00001408: MSTORE 00001409: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 0000142a: PUSH1 0x44 0000142c: DUP3 0000142d: ADD 0000142e: MSTORE 0000142f: PUSH6 0x1c8818d85b1b 00001436: PUSH1 0xd2 00001438: SHL 00001439: PUSH1 0x64 0000143b: DUP3 0000143c: ADD 0000143d: MSTORE 0000143e: PUSH1 0x84 00001440: ADD 00001441: PUSH3 0x0002f4 00001445: JUMP 00001446: JUMPDEST 00001447: DUP5 00001448: EXTCODESIZE 00001449: PUSH3 0x001496 0000144d: JUMPI 0000144e: PUSH1 0x40 00001450: MLOAD 00001451: PUSH3 0x461bcd 00001455: PUSH1 0xe5 00001457: SHL 00001458: DUP2 00001459: MSTORE 0000145a: PUSH1 0x20 0000145c: PUSH1 0x04 0000145e: DUP3 0000145f: ADD 00001460: MSTORE 00001461: PUSH1 0x1d 00001463: PUSH1 0x24 00001465: DUP3 00001466: ADD 00001467: MSTORE 00001468: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00001489: PUSH1 0x44 0000148b: DUP3 0000148c: ADD 0000148d: MSTORE 0000148e: PUSH1 0x64 00001490: ADD 00001491: PUSH3 0x0002f4 00001495: JUMP 00001496: JUMPDEST 00001497: PUSH1 0x00 00001499: DUP1 0000149a: DUP7 0000149b: PUSH1 0x01 0000149d: PUSH1 0x01 0000149f: PUSH1 0xa0 000014a1: SHL 000014a2: SUB 000014a3: AND 000014a4: DUP6 000014a5: DUP8 000014a6: PUSH1 0x40 000014a8: MLOAD 000014a9: PUSH3 0x0014b4 000014ad: SWAP2 000014ae: SWAP1 000014af: PUSH3 0x002730 000014b3: JUMP 000014b4: JUMPDEST 000014b5: PUSH1 0x00 000014b7: PUSH1 0x40 000014b9: MLOAD 000014ba: DUP1 000014bb: DUP4 000014bc: SUB 000014bd: DUP2 000014be: DUP6 000014bf: DUP8 000014c0: GAS 000014c1: CALL 000014c2: SWAP3 000014c3: POP 000014c4: POP 000014c5: POP 000014c6: RETURNDATASIZE 000014c7: DUP1 000014c8: PUSH1 0x00 000014ca: DUP2 000014cb: EQ 000014cc: PUSH3 0x0014f3 000014d0: JUMPI 000014d1: PUSH1 0x40 000014d3: MLOAD 000014d4: SWAP2 000014d5: POP 000014d6: PUSH1 0x1f 000014d8: NOT 000014d9: PUSH1 0x3f 000014db: RETURNDATASIZE 000014dc: ADD 000014dd: AND 000014de: DUP3 000014df: ADD 000014e0: PUSH1 0x40 000014e2: MSTORE 000014e3: RETURNDATASIZE 000014e4: DUP3 000014e5: MSTORE 000014e6: RETURNDATASIZE 000014e7: PUSH1 0x00 000014e9: PUSH1 0x20 000014eb: DUP5 000014ec: ADD 000014ed: RETURNDATACOPY 000014ee: PUSH3 0x0014f8 000014f2: JUMP 000014f3: JUMPDEST 000014f4: PUSH1 0x60 000014f6: SWAP2 000014f7: POP 000014f8: JUMPDEST 000014f9: POP 000014fa: SWAP2 000014fb: POP 000014fc: SWAP2 000014fd: POP 000014fe: PUSH3 0x00150a 00001502: DUP3 00001503: DUP3 00001504: DUP7 00001505: PUSH3 0x0017e0 00001509: JUMP 0000150a: JUMPDEST 0000150b: SWAP8 0000150c: SWAP7 0000150d: POP 0000150e: POP 0000150f: POP 00001510: POP 00001511: POP 00001512: POP 00001513: POP 00001514: JUMP 00001515: JUMPDEST 00001516: PUSH1 0x00 00001518: DUP1 00001519: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 0000153a: DUP4 0000153b: GT 0000153c: ISZERO 0000153d: PUSH3 0x00154e 00001541: JUMPI 00001542: POP 00001543: PUSH1 0x00 00001545: SWAP1 00001546: POP 00001547: PUSH1 0x03 00001549: PUSH3 0x001601 0000154d: JUMP 0000154e: JUMPDEST 0000154f: DUP5 00001550: PUSH1 0xff 00001552: AND 00001553: PUSH1 0x1b 00001555: EQ 00001556: ISZERO 00001557: DUP1 00001558: ISZERO 00001559: PUSH3 0x001567 0000155d: JUMPI 0000155e: POP 0000155f: DUP5 00001560: PUSH1 0xff 00001562: AND 00001563: PUSH1 0x1c 00001565: EQ 00001566: ISZERO 00001567: JUMPDEST 00001568: ISZERO 00001569: PUSH3 0x00157a 0000156d: JUMPI 0000156e: POP 0000156f: PUSH1 0x00 00001571: SWAP1 00001572: POP 00001573: PUSH1 0x04 00001575: PUSH3 0x001601 00001579: JUMP 0000157a: JUMPDEST 0000157b: PUSH1 0x40 0000157d: DUP1 0000157e: MLOAD 0000157f: PUSH1 0x00 00001581: DUP1 00001582: DUP3 00001583: MSTORE 00001584: PUSH1 0x20 00001586: DUP3 00001587: ADD 00001588: DUP1 00001589: DUP5 0000158a: MSTORE 0000158b: DUP10 0000158c: SWAP1 0000158d: MSTORE 0000158e: PUSH1 0xff 00001590: DUP9 00001591: AND 00001592: SWAP3 00001593: DUP3 00001594: ADD 00001595: SWAP3 00001596: SWAP1 00001597: SWAP3 00001598: MSTORE 00001599: PUSH1 0x60 0000159b: DUP2 0000159c: ADD 0000159d: DUP7 0000159e: SWAP1 0000159f: MSTORE 000015a0: PUSH1 0x80 000015a2: DUP2 000015a3: ADD 000015a4: DUP6 000015a5: SWAP1 000015a6: MSTORE 000015a7: PUSH1 0x01 000015a9: SWAP1 000015aa: PUSH1 0xa0 000015ac: ADD 000015ad: PUSH1 0x20 000015af: PUSH1 0x40 000015b1: MLOAD 000015b2: PUSH1 0x20 000015b4: DUP2 000015b5: SUB 000015b6: SWAP1 000015b7: DUP1 000015b8: DUP5 000015b9: SUB 000015ba: SWAP1 000015bb: DUP6 000015bc: GAS 000015bd: STATICCALL 000015be: ISZERO 000015bf: DUP1 000015c0: ISZERO 000015c1: PUSH3 0x0015cf 000015c5: JUMPI 000015c6: RETURNDATASIZE 000015c7: PUSH1 0x00 000015c9: DUP1 000015ca: RETURNDATACOPY 000015cb: RETURNDATASIZE 000015cc: PUSH1 0x00 000015ce: REVERT 000015cf: JUMPDEST 000015d0: POP 000015d1: POP 000015d2: PUSH1 0x40 000015d4: MLOAD 000015d5: PUSH1 0x1f 000015d7: NOT 000015d8: ADD 000015d9: MLOAD 000015da: SWAP2 000015db: POP 000015dc: POP 000015dd: PUSH1 0x01 000015df: PUSH1 0x01 000015e1: PUSH1 0xa0 000015e3: SHL 000015e4: SUB 000015e5: DUP2 000015e6: AND 000015e7: PUSH3 0x0015fa 000015eb: JUMPI 000015ec: PUSH1 0x00 000015ee: PUSH1 0x01 000015f0: SWAP3 000015f1: POP 000015f2: SWAP3 000015f3: POP 000015f4: POP 000015f5: PUSH3 0x001601 000015f9: JUMP 000015fa: JUMPDEST 000015fb: SWAP2 000015fc: POP 000015fd: PUSH1 0x00 000015ff: SWAP1 00001600: POP 00001601: JUMPDEST 00001602: SWAP5 00001603: POP 00001604: SWAP5 00001605: SWAP3 00001606: POP 00001607: POP 00001608: POP 00001609: JUMP 0000160a: JUMPDEST 0000160b: PUSH1 0x00 0000160d: DUP2 0000160e: PUSH1 0x04 00001610: DUP2 00001611: GT 00001612: ISZERO 00001613: PUSH3 0x001621 00001617: JUMPI 00001618: PUSH3 0x001621 0000161c: PUSH3 0x00274e 00001620: JUMP 00001621: JUMPDEST 00001622: EQ 00001623: ISZERO 00001624: PUSH3 0x00162b 00001628: JUMPI 00001629: POP 0000162a: JUMP 0000162b: JUMPDEST 0000162c: PUSH1 0x01 0000162e: DUP2 0000162f: PUSH1 0x04 00001631: DUP2 00001632: GT 00001633: ISZERO 00001634: PUSH3 0x001642 00001638: JUMPI 00001639: PUSH3 0x001642 0000163d: PUSH3 0x00274e 00001641: JUMP 00001642: JUMPDEST 00001643: EQ 00001644: ISZERO 00001645: PUSH3 0x001692 00001649: JUMPI 0000164a: PUSH1 0x40 0000164c: MLOAD 0000164d: PUSH3 0x461bcd 00001651: PUSH1 0xe5 00001653: SHL 00001654: DUP2 00001655: MSTORE 00001656: PUSH1 0x20 00001658: PUSH1 0x04 0000165a: DUP3 0000165b: ADD 0000165c: MSTORE 0000165d: PUSH1 0x18 0000165f: PUSH1 0x24 00001661: DUP3 00001662: ADD 00001663: MSTORE 00001664: PUSH32 0x45434453413a20696e76616c6964207369676e61747572650000000000000000 00001685: PUSH1 0x44 00001687: DUP3 00001688: ADD 00001689: MSTORE 0000168a: PUSH1 0x64 0000168c: ADD 0000168d: PUSH3 0x0002f4 00001691: JUMP 00001692: JUMPDEST 00001693: PUSH1 0x02 00001695: DUP2 00001696: PUSH1 0x04 00001698: DUP2 00001699: GT 0000169a: ISZERO 0000169b: PUSH3 0x0016a9 0000169f: JUMPI 000016a0: PUSH3 0x0016a9 000016a4: PUSH3 0x00274e 000016a8: JUMP 000016a9: JUMPDEST 000016aa: EQ 000016ab: ISZERO 000016ac: PUSH3 0x0016f9 000016b0: JUMPI 000016b1: PUSH1 0x40 000016b3: MLOAD 000016b4: PUSH3 0x461bcd 000016b8: PUSH1 0xe5 000016ba: SHL 000016bb: DUP2 000016bc: MSTORE 000016bd: PUSH1 0x20 000016bf: PUSH1 0x04 000016c1: DUP3 000016c2: ADD 000016c3: MSTORE 000016c4: PUSH1 0x1f 000016c6: PUSH1 0x24 000016c8: DUP3 000016c9: ADD 000016ca: MSTORE 000016cb: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265206c656e67746800 000016ec: PUSH1 0x44 000016ee: DUP3 000016ef: ADD 000016f0: MSTORE 000016f1: PUSH1 0x64 000016f3: ADD 000016f4: PUSH3 0x0002f4 000016f8: JUMP 000016f9: JUMPDEST 000016fa: PUSH1 0x03 000016fc: DUP2 000016fd: PUSH1 0x04 000016ff: DUP2 00001700: GT 00001701: ISZERO 00001702: PUSH3 0x001710 00001706: JUMPI 00001707: PUSH3 0x001710 0000170b: PUSH3 0x00274e 0000170f: JUMP 00001710: JUMPDEST 00001711: EQ 00001712: ISZERO 00001713: PUSH3 0x00176b 00001717: JUMPI 00001718: PUSH1 0x40 0000171a: MLOAD 0000171b: PUSH3 0x461bcd 0000171f: PUSH1 0xe5 00001721: SHL 00001722: DUP2 00001723: MSTORE 00001724: PUSH1 0x20 00001726: PUSH1 0x04 00001728: DUP3 00001729: ADD 0000172a: MSTORE 0000172b: PUSH1 0x22 0000172d: PUSH1 0x24 0000172f: DUP3 00001730: ADD 00001731: MSTORE 00001732: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265202773272076616c 00001753: PUSH1 0x44 00001755: DUP3 00001756: ADD 00001757: MSTORE 00001758: PUSH2 0x7565 0000175b: PUSH1 0xf0 0000175d: SHL 0000175e: PUSH1 0x64 00001760: DUP3 00001761: ADD 00001762: MSTORE 00001763: PUSH1 0x84 00001765: ADD 00001766: PUSH3 0x0002f4 0000176a: JUMP 0000176b: JUMPDEST 0000176c: PUSH1 0x04 0000176e: DUP2 0000176f: PUSH1 0x04 00001771: DUP2 00001772: GT 00001773: ISZERO 00001774: PUSH3 0x001782 00001778: JUMPI 00001779: PUSH3 0x001782 0000177d: PUSH3 0x00274e 00001781: JUMP 00001782: JUMPDEST 00001783: EQ 00001784: ISZERO 00001785: PUSH3 0x0017dd 00001789: JUMPI 0000178a: PUSH1 0x40 0000178c: MLOAD 0000178d: PUSH3 0x461bcd 00001791: PUSH1 0xe5 00001793: SHL 00001794: DUP2 00001795: MSTORE 00001796: PUSH1 0x20 00001798: PUSH1 0x04 0000179a: DUP3 0000179b: ADD 0000179c: MSTORE 0000179d: PUSH1 0x22 0000179f: PUSH1 0x24 000017a1: DUP3 000017a2: ADD 000017a3: MSTORE 000017a4: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265202776272076616c 000017c5: PUSH1 0x44 000017c7: DUP3 000017c8: ADD 000017c9: MSTORE 000017ca: PUSH2 0x7565 000017cd: PUSH1 0xf0 000017cf: SHL 000017d0: PUSH1 0x64 000017d2: DUP3 000017d3: ADD 000017d4: MSTORE 000017d5: PUSH1 0x84 000017d7: ADD 000017d8: PUSH3 0x0002f4 000017dc: JUMP 000017dd: JUMPDEST 000017de: POP 000017df: JUMP 000017e0: JUMPDEST 000017e1: PUSH1 0x60 000017e3: DUP4 000017e4: ISZERO 000017e5: PUSH3 0x0017f1 000017e9: JUMPI 000017ea: POP 000017eb: DUP2 000017ec: PUSH3 0x001229 000017f0: JUMP 000017f1: JUMPDEST 000017f2: DUP3 000017f3: MLOAD 000017f4: ISZERO 000017f5: PUSH3 0x001802 000017f9: JUMPI 000017fa: DUP3 000017fb: MLOAD 000017fc: DUP1 000017fd: DUP5 000017fe: PUSH1 0x20 00001800: ADD 00001801: REVERT 00001802: JUMPDEST 00001803: DUP2 00001804: PUSH1 0x40 00001806: MLOAD 00001807: PUSH3 0x461bcd 0000180b: PUSH1 0xe5 0000180d: SHL 0000180e: DUP2 0000180f: MSTORE 00001810: PUSH1 0x04 00001812: ADD 00001813: PUSH3 0x0002f4 00001817: SWAP2 00001818: SWAP1 00001819: PUSH3 0x002764 0000181d: JUMP 0000181e: JUMPDEST 0000181f: PUSH2 0x0d3e 00001822: DUP1 00001823: PUSH3 0x00277a 00001827: DUP4 00001828: CODECOPY 00001829: ADD 0000182a: SWAP1 0000182b: JUMP 0000182c: JUMPDEST 0000182d: PUSH1 0x00 0000182f: PUSH1 0xa0 00001831: DUP3 00001832: DUP5 00001833: SUB 00001834: SLT 00001835: ISZERO 00001836: PUSH3 0x00183f 0000183a: JUMPI 0000183b: PUSH1 0x00 0000183d: DUP1 0000183e: REVERT 0000183f: JUMPDEST 00001840: POP 00001841: SWAP2 00001842: SWAP1 00001843: POP 00001844: JUMP 00001845: JUMPDEST 00001846: PUSH1 0x00 00001848: DUP1 00001849: DUP4 0000184a: PUSH1 0x1f 0000184c: DUP5 0000184d: ADD 0000184e: SLT 0000184f: PUSH3 0x001858 00001853: JUMPI 00001854: PUSH1 0x00 00001856: DUP1 00001857: REVERT 00001858: JUMPDEST 00001859: POP 0000185a: DUP2 0000185b: CALLDATALOAD 0000185c: PUSH1 0x01 0000185e: PUSH1 0x01 00001860: PUSH1 0x40 00001862: SHL 00001863: SUB 00001864: DUP2 00001865: GT 00001866: ISZERO 00001867: PUSH3 0x001870 0000186b: JUMPI 0000186c: PUSH1 0x00 0000186e: DUP1 0000186f: REVERT 00001870: JUMPDEST 00001871: PUSH1 0x20 00001873: DUP4 00001874: ADD 00001875: SWAP2 00001876: POP 00001877: DUP4 00001878: PUSH1 0x20 0000187a: PUSH1 0x60 0000187c: DUP4 0000187d: MUL 0000187e: DUP6 0000187f: ADD 00001880: ADD 00001881: GT 00001882: ISZERO 00001883: PUSH3 0x00188c 00001887: JUMPI 00001888: PUSH1 0x00 0000188a: DUP1 0000188b: REVERT 0000188c: JUMPDEST 0000188d: SWAP3 0000188e: POP 0000188f: SWAP3 00001890: SWAP1 00001891: POP 00001892: JUMP 00001893: JUMPDEST 00001894: PUSH1 0x00 00001896: DUP1 00001897: PUSH1 0x00 00001899: DUP1 0000189a: PUSH1 0x00 0000189c: PUSH1 0x80 0000189e: DUP7 0000189f: DUP9 000018a0: SUB 000018a1: SLT 000018a2: ISZERO 000018a3: PUSH3 0x0018ac 000018a7: JUMPI 000018a8: PUSH1 0x00 000018aa: DUP1 000018ab: REVERT 000018ac: JUMPDEST 000018ad: DUP6 000018ae: CALLDATALOAD 000018af: PUSH1 0x01 000018b1: PUSH1 0x01 000018b3: PUSH1 0x40 000018b5: SHL 000018b6: SUB 000018b7: DUP1 000018b8: DUP3 000018b9: GT 000018ba: ISZERO 000018bb: PUSH3 0x0018c4 000018bf: JUMPI 000018c0: PUSH1 0x00 000018c2: DUP1 000018c3: REVERT 000018c4: JUMPDEST 000018c5: PUSH3 0x0018d2 000018c9: DUP10 000018ca: DUP4 000018cb: DUP11 000018cc: ADD 000018cd: PUSH3 0x00182c 000018d1: JUMP 000018d2: JUMPDEST 000018d3: SWAP7 000018d4: POP 000018d5: PUSH1 0x20 000018d7: DUP9 000018d8: ADD 000018d9: CALLDATALOAD 000018da: SWAP2 000018db: POP 000018dc: DUP1 000018dd: DUP3 000018de: GT 000018df: ISZERO 000018e0: PUSH3 0x0018e9 000018e4: JUMPI 000018e5: PUSH1 0x00 000018e7: DUP1 000018e8: REVERT 000018e9: JUMPDEST 000018ea: POP 000018eb: PUSH3 0x0018f8 000018ef: DUP9 000018f0: DUP3 000018f1: DUP10 000018f2: ADD 000018f3: PUSH3 0x001845 000018f7: JUMP 000018f8: JUMPDEST 000018f9: SWAP7 000018fa: SWAP10 000018fb: SWAP1 000018fc: SWAP9 000018fd: POP 000018fe: SWAP6 000018ff: SWAP7 00001900: PUSH1 0x40 00001902: DUP2 00001903: ADD 00001904: CALLDATALOAD 00001905: SWAP7 00001906: PUSH1 0x60 00001908: SWAP1 00001909: SWAP2 0000190a: ADD 0000190b: CALLDATALOAD 0000190c: SWAP6 0000190d: POP 0000190e: SWAP4 0000190f: POP 00001910: POP 00001911: POP 00001912: POP 00001913: JUMP 00001914: JUMPDEST 00001915: PUSH1 0x00 00001917: DUP1 00001918: PUSH1 0x40 0000191a: DUP4 0000191b: DUP6 0000191c: SUB 0000191d: SLT 0000191e: ISZERO 0000191f: PUSH3 0x001928 00001923: JUMPI 00001924: PUSH1 0x00 00001926: DUP1 00001927: REVERT 00001928: JUMPDEST 00001929: DUP3 0000192a: CALLDATALOAD 0000192b: PUSH1 0x01 0000192d: PUSH1 0x01 0000192f: PUSH1 0x40 00001931: SHL 00001932: SUB 00001933: DUP2 00001934: GT 00001935: ISZERO 00001936: PUSH3 0x00193f 0000193a: JUMPI 0000193b: PUSH1 0x00 0000193d: DUP1 0000193e: REVERT 0000193f: JUMPDEST 00001940: PUSH3 0x00194d 00001944: DUP6 00001945: DUP3 00001946: DUP7 00001947: ADD 00001948: PUSH3 0x00182c 0000194c: JUMP 0000194d: JUMPDEST 0000194e: SWAP6 0000194f: PUSH1 0x20 00001951: SWAP5 00001952: SWAP1 00001953: SWAP5 00001954: ADD 00001955: CALLDATALOAD 00001956: SWAP5 00001957: POP 00001958: POP 00001959: POP 0000195a: POP 0000195b: JUMP 0000195c: JUMPDEST 0000195d: DUP1 0000195e: CALLDATALOAD 0000195f: PUSH1 0x01 00001961: PUSH1 0x01 00001963: PUSH1 0xa0 00001965: SHL 00001966: SUB 00001967: DUP2 00001968: AND 00001969: DUP2 0000196a: EQ 0000196b: PUSH3 0x001974 0000196f: JUMPI 00001970: PUSH1 0x00 00001972: DUP1 00001973: REVERT 00001974: JUMPDEST 00001975: SWAP2 00001976: SWAP1 00001977: POP 00001978: JUMP 00001979: JUMPDEST 0000197a: PUSH1 0x00 0000197c: PUSH1 0x20 0000197e: DUP3 0000197f: DUP5 00001980: SUB 00001981: SLT 00001982: ISZERO 00001983: PUSH3 0x00198c 00001987: JUMPI 00001988: PUSH1 0x00 0000198a: DUP1 0000198b: REVERT 0000198c: JUMPDEST 0000198d: PUSH3 0x001229 00001991: DUP3 00001992: PUSH3 0x00195c 00001996: JUMP 00001997: JUMPDEST 00001998: PUSH1 0x00 0000199a: DUP1 0000199b: DUP4 0000199c: PUSH1 0x1f 0000199e: DUP5 0000199f: ADD 000019a0: SLT 000019a1: PUSH3 0x0019aa 000019a5: JUMPI 000019a6: PUSH1 0x00 000019a8: DUP1 000019a9: REVERT 000019aa: JUMPDEST 000019ab: POP 000019ac: DUP2 000019ad: CALLDATALOAD 000019ae: PUSH1 0x01 000019b0: PUSH1 0x01 000019b2: PUSH1 0x40 000019b4: SHL 000019b5: SUB 000019b6: DUP2 000019b7: GT 000019b8: ISZERO 000019b9: PUSH3 0x0019c2 000019bd: JUMPI 000019be: PUSH1 0x00 000019c0: DUP1 000019c1: REVERT 000019c2: JUMPDEST 000019c3: PUSH1 0x20 000019c5: DUP4 000019c6: ADD 000019c7: SWAP2 000019c8: POP 000019c9: DUP4 000019ca: PUSH1 0x20 000019cc: DUP3 000019cd: DUP6 000019ce: ADD 000019cf: ADD 000019d0: GT 000019d1: ISZERO 000019d2: PUSH3 0x00188c 000019d6: JUMPI 000019d7: PUSH1 0x00 000019d9: DUP1 000019da: REVERT 000019db: JUMPDEST 000019dc: PUSH1 0x00 000019de: DUP1 000019df: PUSH1 0x00 000019e1: DUP1 000019e2: PUSH1 0x60 000019e4: DUP6 000019e5: DUP8 000019e6: SUB 000019e7: SLT 000019e8: ISZERO 000019e9: PUSH3 0x0019f2 000019ed: JUMPI 000019ee: PUSH1 0x00 000019f0: DUP1 000019f1: REVERT 000019f2: JUMPDEST 000019f3: PUSH3 0x0019fd 000019f7: DUP6 000019f8: PUSH3 0x00195c 000019fc: JUMP 000019fd: JUMPDEST 000019fe: SWAP4 000019ff: POP 00001a00: PUSH1 0x20 00001a02: DUP6 00001a03: ADD 00001a04: CALLDATALOAD 00001a05: PUSH1 0x01 00001a07: PUSH1 0x01 00001a09: PUSH1 0x40 00001a0b: SHL 00001a0c: SUB 00001a0d: DUP2 00001a0e: GT 00001a0f: ISZERO 00001a10: PUSH3 0x001a19 00001a14: JUMPI 00001a15: PUSH1 0x00 00001a17: DUP1 00001a18: REVERT 00001a19: JUMPDEST 00001a1a: PUSH3 0x001a27 00001a1e: DUP8 00001a1f: DUP3 00001a20: DUP9 00001a21: ADD 00001a22: PUSH3 0x001997 00001a26: JUMP 00001a27: JUMPDEST 00001a28: SWAP6 00001a29: SWAP9 00001a2a: SWAP1 00001a2b: SWAP8 00001a2c: POP 00001a2d: SWAP5 00001a2e: SWAP6 00001a2f: PUSH1 0x40 00001a31: ADD 00001a32: CALLDATALOAD 00001a33: SWAP5 00001a34: SWAP4 00001a35: POP 00001a36: POP 00001a37: POP 00001a38: POP 00001a39: JUMP 00001a3a: JUMPDEST 00001a3b: PUSH4 0x4e487b71 00001a40: PUSH1 0xe0 00001a42: SHL 00001a43: PUSH1 0x00 00001a45: MSTORE 00001a46: PUSH1 0x41 00001a48: PUSH1 0x04 00001a4a: MSTORE 00001a4b: PUSH1 0x24 00001a4d: PUSH1 0x00 00001a4f: REVERT 00001a50: JUMPDEST 00001a51: PUSH1 0x40 00001a53: MLOAD 00001a54: PUSH2 0x0120 00001a57: DUP2 00001a58: ADD 00001a59: PUSH1 0x01 00001a5b: PUSH1 0x01 00001a5d: PUSH1 0x40 00001a5f: SHL 00001a60: SUB 00001a61: DUP2 00001a62: GT 00001a63: DUP3 00001a64: DUP3 00001a65: LT 00001a66: OR 00001a67: ISZERO 00001a68: PUSH3 0x001a76 00001a6c: JUMPI 00001a6d: PUSH3 0x001a76 00001a71: PUSH3 0x001a3a 00001a75: JUMP 00001a76: JUMPDEST 00001a77: PUSH1 0x40 00001a79: MSTORE 00001a7a: SWAP1 00001a7b: JUMP 00001a7c: JUMPDEST 00001a7d: PUSH1 0x40 00001a7f: MLOAD 00001a80: PUSH1 0x1f 00001a82: DUP3 00001a83: ADD 00001a84: PUSH1 0x1f 00001a86: NOT 00001a87: AND 00001a88: DUP2 00001a89: ADD 00001a8a: PUSH1 0x01 00001a8c: PUSH1 0x01 00001a8e: PUSH1 0x40 00001a90: SHL 00001a91: SUB 00001a92: DUP2 00001a93: GT 00001a94: DUP3 00001a95: DUP3 00001a96: LT 00001a97: OR 00001a98: ISZERO 00001a99: PUSH3 0x001aa7 00001a9d: JUMPI 00001a9e: PUSH3 0x001aa7 00001aa2: PUSH3 0x001a3a 00001aa6: JUMP 00001aa7: JUMPDEST 00001aa8: PUSH1 0x40 00001aaa: MSTORE 00001aab: SWAP2 00001aac: SWAP1 00001aad: POP 00001aae: JUMP 00001aaf: JUMPDEST 00001ab0: PUSH1 0x00 00001ab2: PUSH1 0x01 00001ab4: PUSH1 0x01 00001ab6: PUSH1 0x40 00001ab8: SHL 00001ab9: SUB 00001aba: DUP3 00001abb: GT 00001abc: ISZERO 00001abd: PUSH3 0x001acb 00001ac1: JUMPI 00001ac2: PUSH3 0x001acb 00001ac6: PUSH3 0x001a3a 00001aca: JUMP 00001acb: JUMPDEST 00001acc: POP 00001acd: PUSH1 0x05 00001acf: SHL 00001ad0: PUSH1 0x20 00001ad2: ADD 00001ad3: SWAP1 00001ad4: JUMP 00001ad5: JUMPDEST 00001ad6: PUSH1 0x00 00001ad8: DUP3 00001ad9: PUSH1 0x1f 00001adb: DUP4 00001adc: ADD 00001add: SLT 00001ade: PUSH3 0x001ae7 00001ae2: JUMPI 00001ae3: PUSH1 0x00 00001ae5: DUP1 00001ae6: REVERT 00001ae7: JUMPDEST 00001ae8: DUP2 00001ae9: CALLDATALOAD 00001aea: PUSH1 0x20 00001aec: PUSH3 0x001b00 00001af0: PUSH3 0x001afa 00001af4: DUP4 00001af5: PUSH3 0x001aaf 00001af9: JUMP 00001afa: JUMPDEST 00001afb: PUSH3 0x001a7c 00001aff: JUMP 00001b00: JUMPDEST 00001b01: DUP3 00001b02: DUP2 00001b03: MSTORE 00001b04: PUSH1 0x05 00001b06: SWAP3 00001b07: SWAP1 00001b08: SWAP3 00001b09: SHL 00001b0a: DUP5 00001b0b: ADD 00001b0c: DUP2 00001b0d: ADD 00001b0e: SWAP2 00001b0f: DUP2 00001b10: DUP2 00001b11: ADD 00001b12: SWAP1 00001b13: DUP7 00001b14: DUP5 00001b15: GT 00001b16: ISZERO 00001b17: PUSH3 0x001b20 00001b1b: JUMPI 00001b1c: PUSH1 0x00 00001b1e: DUP1 00001b1f: REVERT 00001b20: JUMPDEST 00001b21: DUP3 00001b22: DUP7 00001b23: ADD 00001b24: JUMPDEST 00001b25: DUP5 00001b26: DUP2 00001b27: LT 00001b28: ISZERO 00001b29: PUSH3 0x001b3d 00001b2d: JUMPI 00001b2e: DUP1 00001b2f: CALLDATALOAD 00001b30: DUP4 00001b31: MSTORE 00001b32: SWAP2 00001b33: DUP4 00001b34: ADD 00001b35: SWAP2 00001b36: DUP4 00001b37: ADD 00001b38: PUSH3 0x001b24 00001b3c: JUMP 00001b3d: JUMPDEST 00001b3e: POP 00001b3f: SWAP7 00001b40: SWAP6 00001b41: POP 00001b42: POP 00001b43: POP 00001b44: POP 00001b45: POP 00001b46: POP 00001b47: JUMP 00001b48: JUMPDEST 00001b49: PUSH1 0x00 00001b4b: DUP3 00001b4c: PUSH1 0x1f 00001b4e: DUP4 00001b4f: ADD 00001b50: SLT 00001b51: PUSH3 0x001b5a 00001b55: JUMPI 00001b56: PUSH1 0x00 00001b58: DUP1 00001b59: REVERT 00001b5a: JUMPDEST 00001b5b: DUP2 00001b5c: CALLDATALOAD 00001b5d: PUSH1 0x20 00001b5f: PUSH3 0x001b6d 00001b63: PUSH3 0x001afa 00001b67: DUP4 00001b68: PUSH3 0x001aaf 00001b6c: JUMP 00001b6d: JUMPDEST 00001b6e: DUP3 00001b6f: DUP2 00001b70: MSTORE 00001b71: PUSH1 0x05 00001b73: SWAP3 00001b74: SWAP1 00001b75: SWAP3 00001b76: SHL 00001b77: DUP5 00001b78: ADD 00001b79: DUP2 00001b7a: ADD 00001b7b: SWAP2 00001b7c: DUP2 00001b7d: DUP2 00001b7e: ADD 00001b7f: SWAP1 00001b80: DUP7 00001b81: DUP5 00001b82: GT 00001b83: ISZERO 00001b84: PUSH3 0x001b8d 00001b88: JUMPI 00001b89: PUSH1 0x00 00001b8b: DUP1 00001b8c: REVERT 00001b8d: JUMPDEST 00001b8e: DUP3 00001b8f: DUP7 00001b90: ADD 00001b91: JUMPDEST 00001b92: DUP5 00001b93: DUP2 00001b94: LT 00001b95: ISZERO 00001b96: PUSH3 0x001b3d 00001b9a: JUMPI 00001b9b: PUSH3 0x001ba5 00001b9f: DUP2 00001ba0: PUSH3 0x00195c 00001ba4: JUMP 00001ba5: JUMPDEST 00001ba6: DUP4 00001ba7: MSTORE 00001ba8: SWAP2 00001ba9: DUP4 00001baa: ADD 00001bab: SWAP2 00001bac: DUP4 00001bad: ADD 00001bae: PUSH3 0x001b91 00001bb2: JUMP 00001bb3: JUMPDEST 00001bb4: PUSH1 0x00 00001bb6: DUP3 00001bb7: PUSH1 0x1f 00001bb9: DUP4 00001bba: ADD 00001bbb: SLT 00001bbc: PUSH3 0x001bc5 00001bc0: JUMPI 00001bc1: PUSH1 0x00 00001bc3: DUP1 00001bc4: REVERT 00001bc5: JUMPDEST 00001bc6: DUP2 00001bc7: CALLDATALOAD 00001bc8: PUSH1 0x01 00001bca: PUSH1 0x01 00001bcc: PUSH1 0x40 00001bce: SHL 00001bcf: SUB 00001bd0: DUP2 00001bd1: GT 00001bd2: ISZERO 00001bd3: PUSH3 0x001be1 00001bd7: JUMPI 00001bd8: PUSH3 0x001be1 00001bdc: PUSH3 0x001a3a 00001be0: JUMP 00001be1: JUMPDEST 00001be2: PUSH3 0x001bf6 00001be6: PUSH1 0x1f 00001be8: DUP3 00001be9: ADD 00001bea: PUSH1 0x1f 00001bec: NOT 00001bed: AND 00001bee: PUSH1 0x20 00001bf0: ADD 00001bf1: PUSH3 0x001a7c 00001bf5: JUMP 00001bf6: JUMPDEST 00001bf7: DUP2 00001bf8: DUP2 00001bf9: MSTORE 00001bfa: DUP5 00001bfb: PUSH1 0x20 00001bfd: DUP4 00001bfe: DUP7 00001bff: ADD 00001c00: ADD 00001c01: GT 00001c02: ISZERO 00001c03: PUSH3 0x001c0c 00001c07: JUMPI 00001c08: PUSH1 0x00 00001c0a: DUP1 00001c0b: REVERT 00001c0c: JUMPDEST 00001c0d: DUP2 00001c0e: PUSH1 0x20 00001c10: DUP6 00001c11: ADD 00001c12: PUSH1 0x20 00001c14: DUP4 00001c15: ADD 00001c16: CALLDATACOPY 00001c17: PUSH1 0x00 00001c19: SWAP2 00001c1a: DUP2 00001c1b: ADD 00001c1c: PUSH1 0x20 00001c1e: ADD 00001c1f: SWAP2 00001c20: SWAP1 00001c21: SWAP2 00001c22: MSTORE 00001c23: SWAP4 00001c24: SWAP3 00001c25: POP 00001c26: POP 00001c27: POP 00001c28: JUMP 00001c29: JUMPDEST 00001c2a: PUSH1 0x00 00001c2c: DUP1 00001c2d: PUSH1 0x00 00001c2f: DUP1 00001c30: PUSH1 0x60 00001c32: DUP6 00001c33: DUP8 00001c34: SUB 00001c35: SLT 00001c36: ISZERO 00001c37: PUSH3 0x001c40 00001c3b: JUMPI 00001c3c: PUSH1 0x00 00001c3e: DUP1 00001c3f: REVERT 00001c40: JUMPDEST 00001c41: DUP5 00001c42: CALLDATALOAD 00001c43: PUSH1 0x01 00001c45: PUSH1 0x01 00001c47: PUSH1 0x40 00001c49: SHL 00001c4a: SUB 00001c4b: DUP1 00001c4c: DUP3 00001c4d: GT 00001c4e: ISZERO 00001c4f: PUSH3 0x001c58 00001c53: JUMPI 00001c54: PUSH1 0x00 00001c56: DUP1 00001c57: REVERT 00001c58: JUMPDEST 00001c59: PUSH3 0x001c66 00001c5d: DUP9 00001c5e: DUP4 00001c5f: DUP10 00001c60: ADD 00001c61: PUSH3 0x00182c 00001c65: JUMP 00001c66: JUMPDEST 00001c67: SWAP6 00001c68: POP 00001c69: PUSH1 0x20 00001c6b: DUP8 00001c6c: ADD 00001c6d: CALLDATALOAD 00001c6e: SWAP2 00001c6f: POP 00001c70: DUP1 00001c71: DUP3 00001c72: GT 00001c73: ISZERO 00001c74: PUSH3 0x001c7d 00001c78: JUMPI 00001c79: PUSH1 0x00 00001c7b: DUP1 00001c7c: REVERT 00001c7d: JUMPDEST 00001c7e: PUSH3 0x001c8b 00001c82: DUP9 00001c83: DUP4 00001c84: DUP10 00001c85: ADD 00001c86: PUSH3 0x001845 00001c8a: JUMP 00001c8b: JUMPDEST 00001c8c: SWAP1 00001c8d: SWAP6 00001c8e: POP 00001c8f: SWAP4 00001c90: POP 00001c91: PUSH1 0x40 00001c93: DUP8 00001c94: ADD 00001c95: CALLDATALOAD 00001c96: SWAP2 00001c97: POP 00001c98: DUP1 00001c99: DUP3 00001c9a: GT 00001c9b: ISZERO 00001c9c: PUSH3 0x001ca5 00001ca0: JUMPI 00001ca1: PUSH1 0x00 00001ca3: DUP1 00001ca4: REVERT 00001ca5: JUMPDEST 00001ca6: SWAP1 00001ca7: DUP7 00001ca8: ADD 00001ca9: SWAP1 00001caa: PUSH2 0x0120 00001cad: DUP3 00001cae: DUP10 00001caf: SUB 00001cb0: SLT 00001cb1: ISZERO 00001cb2: PUSH3 0x001cbb 00001cb6: JUMPI 00001cb7: PUSH1 0x00 00001cb9: DUP1 00001cba: REVERT 00001cbb: JUMPDEST 00001cbc: PUSH3 0x001cc5 00001cc0: PUSH3 0x001a50 00001cc4: JUMP 00001cc5: JUMPDEST 00001cc6: DUP3 00001cc7: CALLDATALOAD 00001cc8: DUP3 00001cc9: DUP2 00001cca: GT 00001ccb: ISZERO 00001ccc: PUSH3 0x001cd5 00001cd0: JUMPI 00001cd1: PUSH1 0x00 00001cd3: DUP1 00001cd4: REVERT 00001cd5: JUMPDEST 00001cd6: PUSH3 0x001ce3 00001cda: DUP11 00001cdb: DUP3 00001cdc: DUP7 00001cdd: ADD 00001cde: PUSH3 0x001ad5 00001ce2: JUMP 00001ce3: JUMPDEST 00001ce4: DUP3 00001ce5: MSTORE 00001ce6: POP 00001ce7: PUSH1 0x20 00001ce9: DUP4 00001cea: ADD 00001ceb: CALLDATALOAD 00001cec: DUP3 00001ced: DUP2 00001cee: GT 00001cef: ISZERO 00001cf0: PUSH3 0x001cf9 00001cf4: JUMPI 00001cf5: PUSH1 0x00 00001cf7: DUP1 00001cf8: REVERT 00001cf9: JUMPDEST 00001cfa: PUSH3 0x001d07 00001cfe: DUP11 00001cff: DUP3 00001d00: DUP7 00001d01: ADD 00001d02: PUSH3 0x001b48 00001d06: JUMP 00001d07: JUMPDEST 00001d08: PUSH1 0x20 00001d0a: DUP4 00001d0b: ADD 00001d0c: MSTORE 00001d0d: POP 00001d0e: PUSH1 0x40 00001d10: DUP4 00001d11: ADD 00001d12: CALLDATALOAD 00001d13: DUP3 00001d14: DUP2 00001d15: GT 00001d16: ISZERO 00001d17: PUSH3 0x001d20 00001d1b: JUMPI 00001d1c: PUSH1 0x00 00001d1e: DUP1 00001d1f: REVERT 00001d20: JUMPDEST 00001d21: PUSH3 0x001d2e 00001d25: DUP11 00001d26: DUP3 00001d27: DUP7 00001d28: ADD 00001d29: PUSH3 0x001ad5 00001d2d: JUMP 00001d2e: JUMPDEST 00001d2f: PUSH1 0x40 00001d31: DUP4 00001d32: ADD 00001d33: MSTORE 00001d34: POP 00001d35: PUSH1 0x60 00001d37: DUP4 00001d38: ADD 00001d39: CALLDATALOAD 00001d3a: DUP3 00001d3b: DUP2 00001d3c: GT 00001d3d: ISZERO 00001d3e: PUSH3 0x001d47 00001d42: JUMPI 00001d43: PUSH1 0x00 00001d45: DUP1 00001d46: REVERT 00001d47: JUMPDEST 00001d48: PUSH3 0x001d55 00001d4c: DUP11 00001d4d: DUP3 00001d4e: DUP7 00001d4f: ADD 00001d50: PUSH3 0x001b48 00001d54: JUMP 00001d55: JUMPDEST 00001d56: PUSH1 0x60 00001d58: DUP4 00001d59: ADD 00001d5a: MSTORE 00001d5b: POP 00001d5c: PUSH3 0x001d69 00001d60: PUSH1 0x80 00001d62: DUP5 00001d63: ADD 00001d64: PUSH3 0x00195c 00001d68: JUMP 00001d69: JUMPDEST 00001d6a: PUSH1 0x80 00001d6c: DUP3 00001d6d: ADD 00001d6e: MSTORE 00001d6f: PUSH1 0xa0 00001d71: DUP4 00001d72: ADD 00001d73: CALLDATALOAD 00001d74: DUP3 00001d75: DUP2 00001d76: GT 00001d77: ISZERO 00001d78: PUSH3 0x001d81 00001d7c: JUMPI 00001d7d: PUSH1 0x00 00001d7f: DUP1 00001d80: REVERT 00001d81: JUMPDEST 00001d82: PUSH3 0x001d8f 00001d86: DUP11 00001d87: DUP3 00001d88: DUP7 00001d89: ADD 00001d8a: PUSH3 0x001bb3 00001d8e: JUMP 00001d8f: JUMPDEST 00001d90: PUSH1 0xa0 00001d92: DUP4 00001d93: ADD 00001d94: MSTORE 00001d95: POP 00001d96: PUSH1 0xc0 00001d98: DUP4 00001d99: ADD 00001d9a: CALLDATALOAD 00001d9b: PUSH1 0xc0 00001d9d: DUP3 00001d9e: ADD 00001d9f: MSTORE 00001da0: PUSH1 0xe0 00001da2: DUP4 00001da3: ADD 00001da4: CALLDATALOAD 00001da5: PUSH1 0xe0 00001da7: DUP3 00001da8: ADD 00001da9: MSTORE 00001daa: PUSH2 0x0100 00001dad: SWAP2 00001dae: POP 00001daf: DUP2 00001db0: DUP4 00001db1: ADD 00001db2: CALLDATALOAD 00001db3: DUP3 00001db4: DUP3 00001db5: ADD 00001db6: MSTORE 00001db7: DUP1 00001db8: SWAP4 00001db9: POP 00001dba: POP 00001dbb: POP 00001dbc: POP 00001dbd: SWAP3 00001dbe: SWAP6 00001dbf: SWAP2 00001dc0: SWAP5 00001dc1: POP 00001dc2: SWAP3 00001dc3: POP 00001dc4: JUMP 00001dc5: JUMPDEST 00001dc6: PUSH1 0x00 00001dc8: PUSH1 0x20 00001dca: DUP3 00001dcb: DUP5 00001dcc: SUB 00001dcd: SLT 00001dce: ISZERO 00001dcf: PUSH3 0x001dd8 00001dd3: JUMPI 00001dd4: PUSH1 0x00 00001dd6: DUP1 00001dd7: REVERT 00001dd8: JUMPDEST 00001dd9: POP 00001dda: CALLDATALOAD 00001ddb: SWAP2 00001ddc: SWAP1 00001ddd: POP 00001dde: JUMP 00001ddf: JUMPDEST 00001de0: PUSH1 0x00 00001de2: DUP1 00001de3: DUP4 00001de4: PUSH1 0x1f 00001de6: DUP5 00001de7: ADD 00001de8: SLT 00001de9: PUSH3 0x001df2 00001ded: JUMPI 00001dee: PUSH1 0x00 00001df0: DUP1 00001df1: REVERT 00001df2: JUMPDEST 00001df3: POP 00001df4: DUP2 00001df5: CALLDATALOAD 00001df6: PUSH1 0x01 00001df8: PUSH1 0x01 00001dfa: PUSH1 0x40 00001dfc: SHL 00001dfd: SUB 00001dfe: DUP2 00001dff: GT 00001e00: ISZERO 00001e01: PUSH3 0x001e0a 00001e05: JUMPI 00001e06: PUSH1 0x00 00001e08: DUP1 00001e09: REVERT 00001e0a: JUMPDEST 00001e0b: PUSH1 0x20 00001e0d: DUP4 00001e0e: ADD 00001e0f: SWAP2 00001e10: POP 00001e11: DUP4 00001e12: PUSH1 0x20 00001e14: DUP3 00001e15: PUSH1 0x05 00001e17: SHL 00001e18: DUP6 00001e19: ADD 00001e1a: ADD 00001e1b: GT 00001e1c: ISZERO 00001e1d: PUSH3 0x00188c 00001e21: JUMPI 00001e22: PUSH1 0x00 00001e24: DUP1 00001e25: REVERT 00001e26: JUMPDEST 00001e27: PUSH1 0x00 00001e29: DUP1 00001e2a: PUSH1 0x00 00001e2c: DUP1 00001e2d: PUSH1 0x00 00001e2f: DUP1 00001e30: PUSH1 0x00 00001e32: DUP1 00001e33: PUSH1 0x00 00001e35: DUP1 00001e36: PUSH1 0x00 00001e38: DUP1 00001e39: PUSH2 0x0100 00001e3c: DUP14 00001e3d: DUP16 00001e3e: SUB 00001e3f: SLT 00001e40: ISZERO 00001e41: PUSH3 0x001e4a 00001e45: JUMPI 00001e46: PUSH1 0x00 00001e48: DUP1 00001e49: REVERT 00001e4a: JUMPDEST 00001e4b: PUSH1 0x01 00001e4d: PUSH1 0x01 00001e4f: PUSH1 0x40 00001e51: SHL 00001e52: SUB 00001e53: DUP14 00001e54: CALLDATALOAD 00001e55: GT 00001e56: ISZERO 00001e57: PUSH3 0x001e60 00001e5b: JUMPI 00001e5c: PUSH1 0x00 00001e5e: DUP1 00001e5f: REVERT 00001e60: JUMPDEST 00001e61: PUSH3 0x001e6f 00001e65: DUP15 00001e66: DUP15 00001e67: CALLDATALOAD 00001e68: DUP16 00001e69: ADD 00001e6a: PUSH3 0x00182c 00001e6e: JUMP 00001e6f: JUMPDEST 00001e70: SWAP12 00001e71: POP 00001e72: PUSH1 0x01 00001e74: PUSH1 0x01 00001e76: PUSH1 0x40 00001e78: SHL 00001e79: SUB 00001e7a: PUSH1 0x20 00001e7c: DUP15 00001e7d: ADD 00001e7e: CALLDATALOAD 00001e7f: GT 00001e80: ISZERO 00001e81: PUSH3 0x001e8a 00001e85: JUMPI 00001e86: PUSH1 0x00 00001e88: DUP1 00001e89: REVERT 00001e8a: JUMPDEST 00001e8b: PUSH3 0x001e9c 00001e8f: DUP15 00001e90: PUSH1 0x20 00001e92: DUP16 00001e93: ADD 00001e94: CALLDATALOAD 00001e95: DUP16 00001e96: ADD 00001e97: PUSH3 0x001845 00001e9b: JUMP 00001e9c: JUMPDEST 00001e9d: SWAP1 00001e9e: SWAP12 00001e9f: POP 00001ea0: SWAP10 00001ea1: POP 00001ea2: PUSH1 0x01 00001ea4: PUSH1 0x01 00001ea6: PUSH1 0x40 00001ea8: SHL 00001ea9: SUB 00001eaa: PUSH1 0x40 00001eac: DUP15 00001ead: ADD 00001eae: CALLDATALOAD 00001eaf: GT 00001eb0: ISZERO 00001eb1: PUSH3 0x001eba 00001eb5: JUMPI 00001eb6: PUSH1 0x00 00001eb8: DUP1 00001eb9: REVERT 00001eba: JUMPDEST 00001ebb: PUSH3 0x001ecc 00001ebf: DUP15 00001ec0: PUSH1 0x40 00001ec2: DUP16 00001ec3: ADD 00001ec4: CALLDATALOAD 00001ec5: DUP16 00001ec6: ADD 00001ec7: PUSH3 0x001ddf 00001ecb: JUMP 00001ecc: JUMPDEST 00001ecd: SWAP1 00001ece: SWAP10 00001ecf: POP 00001ed0: SWAP8 00001ed1: POP 00001ed2: PUSH1 0x01 00001ed4: PUSH1 0x01 00001ed6: PUSH1 0x40 00001ed8: SHL 00001ed9: SUB 00001eda: PUSH1 0x60 00001edc: DUP15 00001edd: ADD 00001ede: CALLDATALOAD 00001edf: GT 00001ee0: ISZERO 00001ee1: PUSH3 0x001eea 00001ee5: JUMPI 00001ee6: PUSH1 0x00 00001ee8: DUP1 00001ee9: REVERT 00001eea: JUMPDEST 00001eeb: PUSH3 0x001efc 00001eef: DUP15 00001ef0: PUSH1 0x60 00001ef2: DUP16 00001ef3: ADD 00001ef4: CALLDATALOAD 00001ef5: DUP16 00001ef6: ADD 00001ef7: PUSH3 0x001ddf 00001efb: JUMP 00001efc: JUMPDEST 00001efd: SWAP1 00001efe: SWAP8 00001eff: POP 00001f00: SWAP6 00001f01: POP 00001f02: PUSH1 0x01 00001f04: PUSH1 0x01 00001f06: PUSH1 0x40 00001f08: SHL 00001f09: SUB 00001f0a: PUSH1 0x80 00001f0c: DUP15 00001f0d: ADD 00001f0e: CALLDATALOAD 00001f0f: GT 00001f10: ISZERO 00001f11: PUSH3 0x001f1a 00001f15: JUMPI 00001f16: PUSH1 0x00 00001f18: DUP1 00001f19: REVERT 00001f1a: JUMPDEST 00001f1b: PUSH3 0x001f2c 00001f1f: DUP15 00001f20: PUSH1 0x80 00001f22: DUP16 00001f23: ADD 00001f24: CALLDATALOAD 00001f25: DUP16 00001f26: ADD 00001f27: PUSH3 0x001ddf 00001f2b: JUMP 00001f2c: JUMPDEST 00001f2d: SWAP1 00001f2e: SWAP6 00001f2f: POP 00001f30: SWAP4 00001f31: POP 00001f32: PUSH1 0xa0 00001f34: DUP14 00001f35: ADD 00001f36: CALLDATALOAD 00001f37: SWAP3 00001f38: POP 00001f39: PUSH3 0x001f46 00001f3d: PUSH1 0xc0 00001f3f: DUP15 00001f40: ADD 00001f41: PUSH3 0x00195c 00001f45: JUMP 00001f46: JUMPDEST 00001f47: SWAP2 00001f48: POP 00001f49: PUSH1 0xe0 00001f4b: DUP14 00001f4c: ADD 00001f4d: CALLDATALOAD 00001f4e: SWAP1 00001f4f: POP 00001f50: SWAP3 00001f51: SWAP6 00001f52: SWAP9 00001f53: SWAP12 00001f54: POP 00001f55: SWAP3 00001f56: SWAP6 00001f57: SWAP9 00001f58: SWAP12 00001f59: POP 00001f5a: SWAP3 00001f5b: SWAP6 00001f5c: SWAP9 00001f5d: SWAP12 00001f5e: JUMP 00001f5f: JUMPDEST 00001f60: PUSH1 0x00 00001f62: DUP1 00001f63: PUSH1 0x00 00001f65: DUP1 00001f66: PUSH1 0x60 00001f68: DUP6 00001f69: DUP8 00001f6a: SUB 00001f6b: SLT 00001f6c: ISZERO 00001f6d: PUSH3 0x001f76 00001f71: JUMPI 00001f72: PUSH1 0x00 00001f74: DUP1 00001f75: REVERT 00001f76: JUMPDEST 00001f77: DUP5 00001f78: CALLDATALOAD 00001f79: PUSH1 0x01 00001f7b: PUSH1 0x01 00001f7d: PUSH1 0x40 00001f7f: SHL 00001f80: SUB 00001f81: DUP1 00001f82: DUP3 00001f83: GT 00001f84: ISZERO 00001f85: PUSH3 0x001f8e 00001f89: JUMPI 00001f8a: PUSH1 0x00 00001f8c: DUP1 00001f8d: REVERT 00001f8e: JUMPDEST 00001f8f: PUSH3 0x001f9c 00001f93: DUP9 00001f94: DUP4 00001f95: DUP10 00001f96: ADD 00001f97: PUSH3 0x00182c 00001f9b: JUMP 00001f9c: JUMPDEST 00001f9d: SWAP6 00001f9e: POP 00001f9f: PUSH1 0x20 00001fa1: DUP8 00001fa2: ADD 00001fa3: CALLDATALOAD 00001fa4: SWAP2 00001fa5: POP 00001fa6: DUP1 00001fa7: DUP3 00001fa8: GT 00001fa9: ISZERO 00001faa: PUSH3 0x001fb3 00001fae: JUMPI 00001faf: PUSH1 0x00 00001fb1: DUP1 00001fb2: REVERT 00001fb3: JUMPDEST 00001fb4: PUSH3 0x001fc1 00001fb8: DUP9 00001fb9: DUP4 00001fba: DUP10 00001fbb: ADD 00001fbc: PUSH3 0x00182c 00001fc0: JUMP 00001fc1: JUMPDEST 00001fc2: SWAP5 00001fc3: POP 00001fc4: PUSH1 0x40 00001fc6: DUP8 00001fc7: ADD 00001fc8: CALLDATALOAD 00001fc9: SWAP2 00001fca: POP 00001fcb: DUP1 00001fcc: DUP3 00001fcd: GT 00001fce: ISZERO 00001fcf: PUSH3 0x001fd8 00001fd3: JUMPI 00001fd4: PUSH1 0x00 00001fd6: DUP1 00001fd7: REVERT 00001fd8: JUMPDEST 00001fd9: POP 00001fda: PUSH3 0x001fe7 00001fde: DUP8 00001fdf: DUP3 00001fe0: DUP9 00001fe1: ADD 00001fe2: PUSH3 0x001845 00001fe6: JUMP 00001fe7: JUMPDEST 00001fe8: SWAP6 00001fe9: SWAP9 00001fea: SWAP5 00001feb: SWAP8 00001fec: POP 00001fed: SWAP6 00001fee: POP 00001fef: POP 00001ff0: POP 00001ff1: POP 00001ff2: JUMP 00001ff3: JUMPDEST 00001ff4: DUP1 00001ff5: CALLDATALOAD 00001ff6: PUSH1 0xff 00001ff8: DUP2 00001ff9: AND 00001ffa: DUP2 00001ffb: EQ 00001ffc: PUSH3 0x001974 00002000: JUMPI 00002001: PUSH1 0x00 00002003: DUP1 00002004: REVERT 00002005: JUMPDEST 00002006: PUSH1 0x00 00002008: DUP1 00002009: PUSH1 0x00 0000200b: DUP1 0000200c: PUSH1 0x00 0000200e: DUP1 0000200f: PUSH1 0x00 00002011: PUSH1 0x80 00002013: DUP9 00002014: DUP11 00002015: SUB 00002016: SLT 00002017: ISZERO 00002018: PUSH3 0x002021 0000201c: JUMPI 0000201d: PUSH1 0x00 0000201f: DUP1 00002020: REVERT 00002021: JUMPDEST 00002022: DUP8 00002023: CALLDATALOAD 00002024: PUSH1 0x01 00002026: PUSH1 0x01 00002028: PUSH1 0x40 0000202a: SHL 0000202b: SUB 0000202c: DUP1 0000202d: DUP3 0000202e: GT 0000202f: ISZERO 00002030: PUSH3 0x002039 00002034: JUMPI 00002035: PUSH1 0x00 00002037: DUP1 00002038: REVERT 00002039: JUMPDEST 0000203a: PUSH3 0x002047 0000203e: DUP12 0000203f: DUP4 00002040: DUP13 00002041: ADD 00002042: PUSH3 0x001997 00002046: JUMP 00002047: JUMPDEST 00002048: SWAP1 00002049: SWAP10 0000204a: POP 0000204b: SWAP8 0000204c: POP 0000204d: PUSH1 0x20 0000204f: DUP11 00002050: ADD 00002051: CALLDATALOAD 00002052: SWAP2 00002053: POP 00002054: DUP1 00002055: DUP3 00002056: GT 00002057: ISZERO 00002058: PUSH3 0x002061 0000205c: JUMPI 0000205d: PUSH1 0x00 0000205f: DUP1 00002060: REVERT 00002061: JUMPDEST 00002062: PUSH3 0x00206f 00002066: DUP12 00002067: DUP4 00002068: DUP13 00002069: ADD 0000206a: PUSH3 0x001997 0000206e: JUMP 0000206f: JUMPDEST 00002070: SWAP1 00002071: SWAP8 00002072: POP 00002073: SWAP6 00002074: POP 00002075: PUSH1 0x40 00002077: DUP11 00002078: ADD 00002079: CALLDATALOAD 0000207a: SWAP2 0000207b: POP 0000207c: DUP1 0000207d: DUP3 0000207e: GT 0000207f: ISZERO 00002080: PUSH3 0x002089 00002084: JUMPI 00002085: PUSH1 0x00 00002087: DUP1 00002088: REVERT 00002089: JUMPDEST 0000208a: POP 0000208b: PUSH3 0x002098 0000208f: DUP11 00002090: DUP3 00002091: DUP12 00002092: ADD 00002093: PUSH3 0x001997 00002097: JUMP 00002098: JUMPDEST 00002099: SWAP1 0000209a: SWAP5 0000209b: POP 0000209c: SWAP3 0000209d: POP 0000209e: PUSH3 0x0020ad 000020a2: SWAP1 000020a3: POP 000020a4: PUSH1 0x60 000020a6: DUP10 000020a7: ADD 000020a8: PUSH3 0x001ff3 000020ac: JUMP 000020ad: JUMPDEST 000020ae: SWAP1 000020af: POP 000020b0: SWAP3 000020b1: SWAP6 000020b2: SWAP9 000020b3: SWAP2 000020b4: SWAP5 000020b5: SWAP8 000020b6: POP 000020b7: SWAP3 000020b8: SWAP6 000020b9: POP 000020ba: JUMP 000020bb: JUMPDEST 000020bc: PUSH1 0x00 000020be: PUSH1 0xa0 000020c0: DUP3 000020c1: CALLDATASIZE 000020c2: SUB 000020c3: SLT 000020c4: ISZERO 000020c5: PUSH3 0x0020ce 000020c9: JUMPI 000020ca: PUSH1 0x00 000020cc: DUP1 000020cd: REVERT 000020ce: JUMPDEST 000020cf: PUSH1 0x40 000020d1: MLOAD 000020d2: PUSH1 0xa0 000020d4: DUP2 000020d5: ADD 000020d6: PUSH1 0x01 000020d8: PUSH1 0x01 000020da: PUSH1 0x40 000020dc: SHL 000020dd: SUB 000020de: DUP3 000020df: DUP3 000020e0: LT 000020e1: DUP2 000020e2: DUP4 000020e3: GT 000020e4: OR 000020e5: ISZERO 000020e6: PUSH3 0x0020f4 000020ea: JUMPI 000020eb: PUSH3 0x0020f4 000020ef: PUSH3 0x001a3a 000020f3: JUMP 000020f4: JUMPDEST 000020f5: DUP2 000020f6: PUSH1 0x40 000020f8: MSTORE 000020f9: DUP5 000020fa: CALLDATALOAD 000020fb: SWAP2 000020fc: POP 000020fd: DUP1 000020fe: DUP3 000020ff: GT 00002100: ISZERO 00002101: PUSH3 0x00210a 00002105: JUMPI 00002106: PUSH1 0x00 00002108: DUP1 00002109: REVERT 0000210a: JUMPDEST 0000210b: PUSH3 0x002118 0000210f: CALLDATASIZE 00002110: DUP4 00002111: DUP8 00002112: ADD 00002113: PUSH3 0x001b48 00002117: JUMP 00002118: JUMPDEST 00002119: DUP4 0000211a: MSTORE 0000211b: PUSH1 0x20 0000211d: DUP6 0000211e: ADD 0000211f: CALLDATALOAD 00002120: SWAP2 00002121: POP 00002122: DUP1 00002123: DUP3 00002124: GT 00002125: ISZERO 00002126: PUSH3 0x00212f 0000212a: JUMPI 0000212b: PUSH1 0x00 0000212d: DUP1 0000212e: REVERT 0000212f: JUMPDEST 00002130: POP 00002131: PUSH3 0x00213e 00002135: CALLDATASIZE 00002136: DUP3 00002137: DUP7 00002138: ADD 00002139: PUSH3 0x001ad5 0000213d: JUMP 0000213e: JUMPDEST 0000213f: PUSH1 0x20 00002141: DUP4 00002142: ADD 00002143: MSTORE 00002144: POP 00002145: PUSH1 0x40 00002147: DUP4 00002148: ADD 00002149: CALLDATALOAD 0000214a: PUSH1 0x40 0000214c: DUP3 0000214d: ADD 0000214e: MSTORE 0000214f: PUSH1 0x60 00002151: DUP4 00002152: ADD 00002153: CALLDATALOAD 00002154: PUSH1 0x60 00002156: DUP3 00002157: ADD 00002158: MSTORE 00002159: PUSH3 0x002166 0000215d: PUSH1 0x80 0000215f: DUP5 00002160: ADD 00002161: PUSH3 0x00195c 00002165: JUMP 00002166: JUMPDEST 00002167: PUSH1 0x80 00002169: DUP3 0000216a: ADD 0000216b: MSTORE 0000216c: SWAP3 0000216d: SWAP2 0000216e: POP 0000216f: POP 00002170: JUMP 00002171: JUMPDEST 00002172: PUSH1 0x20 00002174: DUP1 00002175: DUP3 00002176: MSTORE 00002177: PUSH1 0x1f 00002179: SWAP1 0000217a: DUP3 0000217b: ADD 0000217c: MSTORE 0000217d: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 0000219e: PUSH1 0x40 000021a0: DUP3 000021a1: ADD 000021a2: MSTORE 000021a3: PUSH1 0x60 000021a5: ADD 000021a6: SWAP1 000021a7: JUMP 000021a8: JUMPDEST 000021a9: PUSH1 0x00 000021ab: PUSH1 0x20 000021ad: DUP3 000021ae: DUP5 000021af: SUB 000021b0: SLT 000021b1: ISZERO 000021b2: PUSH3 0x0021bb 000021b6: JUMPI 000021b7: PUSH1 0x00 000021b9: DUP1 000021ba: REVERT 000021bb: JUMPDEST 000021bc: POP 000021bd: MLOAD 000021be: SWAP2 000021bf: SWAP1 000021c0: POP 000021c1: JUMP 000021c2: JUMPDEST 000021c3: PUSH4 0x4e487b71 000021c8: PUSH1 0xe0 000021ca: SHL 000021cb: PUSH1 0x00 000021cd: MSTORE 000021ce: PUSH1 0x11 000021d0: PUSH1 0x04 000021d2: MSTORE 000021d3: PUSH1 0x24 000021d5: PUSH1 0x00 000021d7: REVERT 000021d8: JUMPDEST 000021d9: PUSH1 0x00 000021db: DUP3 000021dc: NOT 000021dd: DUP3 000021de: GT 000021df: ISZERO 000021e0: PUSH3 0x0021ee 000021e4: JUMPI 000021e5: PUSH3 0x0021ee 000021e9: PUSH3 0x0021c2 000021ed: JUMP 000021ee: JUMPDEST 000021ef: POP 000021f0: ADD 000021f1: SWAP1 000021f2: JUMP 000021f3: JUMPDEST 000021f4: PUSH1 0x00 000021f6: DUP3 000021f7: DUP3 000021f8: LT 000021f9: ISZERO 000021fa: PUSH3 0x002208 000021fe: JUMPI 000021ff: PUSH3 0x002208 00002203: PUSH3 0x0021c2 00002207: JUMP 00002208: JUMPDEST 00002209: POP 0000220a: SUB 0000220b: SWAP1 0000220c: JUMP 0000220d: JUMPDEST 0000220e: DUP2 0000220f: DUP4 00002210: MSTORE 00002211: DUP2 00002212: DUP2 00002213: PUSH1 0x20 00002215: DUP6 00002216: ADD 00002217: CALLDATACOPY 00002218: POP 00002219: PUSH1 0x00 0000221b: DUP3 0000221c: DUP3 0000221d: ADD 0000221e: PUSH1 0x20 00002220: SWAP1 00002221: DUP2 00002222: ADD 00002223: SWAP2 00002224: SWAP1 00002225: SWAP2 00002226: MSTORE 00002227: PUSH1 0x1f 00002229: SWAP1 0000222a: SWAP2 0000222b: ADD 0000222c: PUSH1 0x1f 0000222e: NOT 0000222f: AND 00002230: SWAP1 00002231: SWAP2 00002232: ADD 00002233: ADD 00002234: SWAP1 00002235: JUMP 00002236: JUMPDEST 00002237: PUSH1 0x60 00002239: DUP2 0000223a: MSTORE 0000223b: PUSH1 0x00 0000223d: PUSH3 0x00224c 00002241: PUSH1 0x60 00002243: DUP4 00002244: ADD 00002245: DUP7 00002246: DUP9 00002247: PUSH3 0x00220d 0000224b: JUMP 0000224c: JUMPDEST 0000224d: PUSH1 0x20 0000224f: DUP4 00002250: ADD 00002251: SWAP5 00002252: SWAP1 00002253: SWAP5 00002254: MSTORE 00002255: POP 00002256: PUSH1 0x40 00002258: ADD 00002259: MSTORE 0000225a: SWAP3 0000225b: SWAP2 0000225c: POP 0000225d: POP 0000225e: JUMP 0000225f: JUMPDEST 00002260: PUSH1 0x00 00002262: DUP2 00002263: MLOAD 00002264: DUP1 00002265: DUP5 00002266: MSTORE 00002267: PUSH1 0x20 00002269: DUP1 0000226a: DUP6 0000226b: ADD 0000226c: SWAP5 0000226d: POP 0000226e: DUP1 0000226f: DUP5 00002270: ADD 00002271: PUSH1 0x00 00002273: JUMPDEST 00002274: DUP4 00002275: DUP2 00002276: LT 00002277: ISZERO 00002278: PUSH3 0x002291 0000227c: JUMPI 0000227d: DUP2 0000227e: MLOAD 0000227f: DUP8 00002280: MSTORE 00002281: SWAP6 00002282: DUP3 00002283: ADD 00002284: SWAP6 00002285: SWAP1 00002286: DUP3 00002287: ADD 00002288: SWAP1 00002289: PUSH1 0x01 0000228b: ADD 0000228c: PUSH3 0x002273 00002290: JUMP 00002291: JUMPDEST 00002292: POP 00002293: SWAP5 00002294: SWAP6 00002295: SWAP5 00002296: POP 00002297: POP 00002298: POP 00002299: POP 0000229a: POP 0000229b: JUMP 0000229c: JUMPDEST 0000229d: PUSH1 0x00 0000229f: DUP2 000022a0: MLOAD 000022a1: DUP1 000022a2: DUP5 000022a3: MSTORE 000022a4: PUSH1 0x20 000022a6: DUP1 000022a7: DUP6 000022a8: ADD 000022a9: SWAP5 000022aa: POP 000022ab: DUP1 000022ac: DUP5 000022ad: ADD 000022ae: PUSH1 0x00 000022b0: JUMPDEST 000022b1: DUP4 000022b2: DUP2 000022b3: LT 000022b4: ISZERO 000022b5: PUSH3 0x002291 000022b9: JUMPI 000022ba: DUP2 000022bb: MLOAD 000022bc: PUSH1 0x01 000022be: PUSH1 0x01 000022c0: PUSH1 0xa0 000022c2: SHL 000022c3: SUB 000022c4: AND 000022c5: DUP8 000022c6: MSTORE 000022c7: SWAP6 000022c8: DUP3 000022c9: ADD 000022ca: SWAP6 000022cb: SWAP1 000022cc: DUP3 000022cd: ADD 000022ce: SWAP1 000022cf: PUSH1 0x01 000022d1: ADD 000022d2: PUSH3 0x0022b0 000022d6: JUMP 000022d7: JUMPDEST 000022d8: PUSH1 0x00 000022da: JUMPDEST 000022db: DUP4 000022dc: DUP2 000022dd: LT 000022de: ISZERO 000022df: PUSH3 0x0022f4 000022e3: JUMPI 000022e4: DUP2 000022e5: DUP2 000022e6: ADD 000022e7: MLOAD 000022e8: DUP4 000022e9: DUP3 000022ea: ADD 000022eb: MSTORE 000022ec: PUSH1 0x20 000022ee: ADD 000022ef: PUSH3 0x0022da 000022f3: JUMP 000022f4: JUMPDEST 000022f5: DUP4 000022f6: DUP2 000022f7: GT 000022f8: ISZERO 000022f9: PUSH3 0x001154 000022fd: JUMPI 000022fe: POP 000022ff: POP 00002300: PUSH1 0x00 00002302: SWAP2 00002303: ADD 00002304: MSTORE 00002305: JUMP 00002306: JUMPDEST 00002307: PUSH1 0x00 00002309: DUP2 0000230a: MLOAD 0000230b: DUP1 0000230c: DUP5 0000230d: MSTORE 0000230e: PUSH3 0x002320 00002312: DUP2 00002313: PUSH1 0x20 00002315: DUP7 00002316: ADD 00002317: PUSH1 0x20 00002319: DUP7 0000231a: ADD 0000231b: PUSH3 0x0022d7 0000231f: JUMP 00002320: JUMPDEST 00002321: PUSH1 0x1f 00002323: ADD 00002324: PUSH1 0x1f 00002326: NOT 00002327: AND 00002328: SWAP3 00002329: SWAP1 0000232a: SWAP3 0000232b: ADD 0000232c: PUSH1 0x20 0000232e: ADD 0000232f: SWAP3 00002330: SWAP2 00002331: POP 00002332: POP 00002333: JUMP 00002334: JUMPDEST 00002335: PUSH1 0x00 00002337: PUSH2 0x0160 0000233a: DUP14 0000233b: DUP4 0000233c: MSTORE 0000233d: DUP13 0000233e: PUSH1 0x20 00002340: DUP5 00002341: ADD 00002342: MSTORE 00002343: DUP1 00002344: PUSH1 0x40 00002346: DUP5 00002347: ADD 00002348: MSTORE 00002349: PUSH3 0x002356 0000234d: DUP2 0000234e: DUP5 0000234f: ADD 00002350: DUP14 00002351: PUSH3 0x00225f 00002355: JUMP 00002356: JUMPDEST 00002357: SWAP1 00002358: POP 00002359: DUP3 0000235a: DUP2 0000235b: SUB 0000235c: PUSH1 0x60 0000235e: DUP5 0000235f: ADD 00002360: MSTORE 00002361: PUSH3 0x00236c 00002365: DUP2 00002366: DUP13 00002367: PUSH3 0x00229c 0000236b: JUMP 0000236c: JUMPDEST 0000236d: SWAP1 0000236e: POP 0000236f: DUP3 00002370: DUP2 00002371: SUB 00002372: PUSH1 0x80 00002374: DUP5 00002375: ADD 00002376: MSTORE 00002377: PUSH3 0x002382 0000237b: DUP2 0000237c: DUP12 0000237d: PUSH3 0x00225f 00002381: JUMP 00002382: JUMPDEST 00002383: SWAP1 00002384: POP 00002385: DUP3 00002386: DUP2 00002387: SUB 00002388: PUSH1 0xa0 0000238a: DUP5 0000238b: ADD 0000238c: MSTORE 0000238d: PUSH3 0x002398 00002391: DUP2 00002392: DUP11 00002393: PUSH3 0x00229c 00002397: JUMP 00002398: JUMPDEST 00002399: PUSH1 0x01 0000239b: PUSH1 0x01 0000239d: PUSH1 0xa0 0000239f: SHL 000023a0: SUB 000023a1: DUP10 000023a2: AND 000023a3: PUSH1 0xc0 000023a5: DUP6 000023a6: ADD 000023a7: MSTORE 000023a8: DUP4 000023a9: DUP2 000023aa: SUB 000023ab: PUSH1 0xe0 000023ad: DUP6 000023ae: ADD 000023af: MSTORE 000023b0: SWAP1 000023b1: POP 000023b2: PUSH3 0x0023bd 000023b6: DUP2 000023b7: DUP9 000023b8: PUSH3 0x002306 000023bc: JUMP 000023bd: JUMPDEST 000023be: PUSH2 0x0100 000023c1: DUP5 000023c2: ADD 000023c3: SWAP7 000023c4: SWAP1 000023c5: SWAP7 000023c6: MSTORE 000023c7: POP 000023c8: POP 000023c9: PUSH2 0x0120 000023cc: DUP2 000023cd: ADD 000023ce: SWAP3 000023cf: SWAP1 000023d0: SWAP3 000023d1: MSTORE 000023d2: PUSH2 0x0140 000023d5: SWAP1 000023d6: SWAP2 000023d7: ADD 000023d8: MSTORE 000023d9: SWAP9 000023da: SWAP8 000023db: POP 000023dc: POP 000023dd: POP 000023de: POP 000023df: POP 000023e0: POP 000023e1: POP 000023e2: POP 000023e3: JUMP 000023e4: JUMPDEST 000023e5: PUSH4 0x4e487b71 000023ea: PUSH1 0xe0 000023ec: SHL 000023ed: PUSH1 0x00 000023ef: MSTORE 000023f0: PUSH1 0x32 000023f2: PUSH1 0x04 000023f4: MSTORE 000023f5: PUSH1 0x24 000023f7: PUSH1 0x00 000023f9: REVERT 000023fa: JUMPDEST 000023fb: PUSH1 0x00 000023fd: PUSH1 0x00 000023ff: NOT 00002400: DUP3 00002401: EQ 00002402: ISZERO 00002403: PUSH3 0x002411 00002407: JUMPI 00002408: PUSH3 0x002411 0000240c: PUSH3 0x0021c2 00002410: JUMP 00002411: JUMPDEST 00002412: POP 00002413: PUSH1 0x01 00002415: ADD 00002416: SWAP1 00002417: JUMP 00002418: JUMPDEST 00002419: DUP5 0000241a: DUP2 0000241b: MSTORE 0000241c: DUP4 0000241d: PUSH1 0x20 0000241f: DUP3 00002420: ADD 00002421: MSTORE 00002422: PUSH1 0x80 00002424: PUSH1 0x40 00002426: DUP3 00002427: ADD 00002428: MSTORE 00002429: PUSH1 0x00 0000242b: PUSH3 0x002439 0000242f: PUSH1 0x80 00002431: DUP4 00002432: ADD 00002433: DUP6 00002434: PUSH3 0x002306 00002438: JUMP 00002439: JUMPDEST 0000243a: SWAP1 0000243b: POP 0000243c: DUP3 0000243d: PUSH1 0x60 0000243f: DUP4 00002440: ADD 00002441: MSTORE 00002442: SWAP6 00002443: SWAP5 00002444: POP 00002445: POP 00002446: POP 00002447: POP 00002448: POP 00002449: JUMP 0000244a: JUMPDEST 0000244b: DUP2 0000244c: DUP4 0000244d: MSTORE 0000244e: PUSH1 0x00 00002450: PUSH1 0x01 00002452: PUSH1 0x01 00002454: PUSH1 0xfb 00002456: SHL 00002457: SUB 00002458: DUP4 00002459: GT 0000245a: ISZERO 0000245b: PUSH3 0x002464 0000245f: JUMPI 00002460: PUSH1 0x00 00002462: DUP1 00002463: REVERT 00002464: JUMPDEST 00002465: DUP3 00002466: PUSH1 0x05 00002468: SHL 00002469: DUP1 0000246a: DUP4 0000246b: PUSH1 0x20 0000246d: DUP8 0000246e: ADD 0000246f: CALLDATACOPY 00002470: PUSH1 0x00 00002472: SWAP5 00002473: ADD 00002474: PUSH1 0x20 00002476: ADD 00002477: SWAP4 00002478: DUP5 00002479: MSTORE 0000247a: POP 0000247b: SWAP2 0000247c: SWAP3 0000247d: SWAP2 0000247e: POP 0000247f: POP 00002480: JUMP 00002481: JUMPDEST 00002482: DUP2 00002483: DUP4 00002484: MSTORE 00002485: PUSH1 0x00 00002487: PUSH1 0x20 00002489: DUP1 0000248a: DUP6 0000248b: ADD 0000248c: SWAP5 0000248d: POP 0000248e: DUP3 0000248f: PUSH1 0x00 00002491: JUMPDEST 00002492: DUP6 00002493: DUP2 00002494: LT 00002495: ISZERO 00002496: PUSH3 0x002291 0000249a: JUMPI 0000249b: PUSH1 0x01 0000249d: PUSH1 0x01 0000249f: PUSH1 0xa0 000024a1: SHL 000024a2: SUB 000024a3: PUSH3 0x0024ad 000024a7: DUP4 000024a8: PUSH3 0x00195c 000024ac: JUMP 000024ad: JUMPDEST 000024ae: AND 000024af: DUP8 000024b0: MSTORE 000024b1: SWAP6 000024b2: DUP3 000024b3: ADD 000024b4: SWAP6 000024b5: SWAP1 000024b6: DUP3 000024b7: ADD 000024b8: SWAP1 000024b9: PUSH1 0x01 000024bb: ADD 000024bc: PUSH3 0x002491 000024c0: JUMP 000024c1: JUMPDEST 000024c2: PUSH1 0x00 000024c4: PUSH2 0x0100 000024c7: DUP14 000024c8: DUP4 000024c9: MSTORE 000024ca: DUP13 000024cb: PUSH1 0x20 000024cd: DUP5 000024ce: ADD 000024cf: MSTORE 000024d0: DUP1 000024d1: PUSH1 0x40 000024d3: DUP5 000024d4: ADD 000024d5: MSTORE 000024d6: PUSH3 0x0024e4 000024da: DUP2 000024db: DUP5 000024dc: ADD 000024dd: DUP13 000024de: DUP15 000024df: PUSH3 0x00244a 000024e3: JUMP 000024e4: JUMPDEST 000024e5: SWAP1 000024e6: POP 000024e7: DUP3 000024e8: DUP2 000024e9: SUB 000024ea: PUSH1 0x60 000024ec: DUP5 000024ed: ADD 000024ee: MSTORE 000024ef: PUSH3 0x0024fb 000024f3: DUP2 000024f4: DUP11 000024f5: DUP13 000024f6: PUSH3 0x002481 000024fa: JUMP 000024fb: JUMPDEST 000024fc: SWAP1 000024fd: POP 000024fe: DUP3 000024ff: DUP2 00002500: SUB 00002501: PUSH1 0x80 00002503: DUP5 00002504: ADD 00002505: MSTORE 00002506: PUSH3 0x002512 0000250a: DUP2 0000250b: DUP9 0000250c: DUP11 0000250d: PUSH3 0x00244a 00002511: JUMP 00002512: JUMPDEST 00002513: PUSH1 0xa0 00002515: DUP5 00002516: ADD 00002517: SWAP7 00002518: SWAP1 00002519: SWAP7 0000251a: MSTORE 0000251b: POP 0000251c: POP 0000251d: PUSH1 0x01 0000251f: PUSH1 0x01 00002521: PUSH1 0xa0 00002523: SHL 00002524: SUB 00002525: SWAP3 00002526: SWAP1 00002527: SWAP3 00002528: AND 00002529: PUSH1 0xc0 0000252b: DUP4 0000252c: ADD 0000252d: MSTORE 0000252e: PUSH1 0xe0 00002530: SWAP1 00002531: SWAP2 00002532: ADD 00002533: MSTORE 00002534: SWAP9 00002535: SWAP8 00002536: POP 00002537: POP 00002538: POP 00002539: POP 0000253a: POP 0000253b: POP 0000253c: POP 0000253d: POP 0000253e: JUMP 0000253f: JUMPDEST 00002540: PUSH1 0x00 00002542: DUP1 00002543: DUP4 00002544: CALLDATALOAD 00002545: PUSH1 0x1e 00002547: NOT 00002548: DUP5 00002549: CALLDATASIZE 0000254a: SUB 0000254b: ADD 0000254c: DUP2 0000254d: SLT 0000254e: PUSH3 0x002557 00002552: JUMPI 00002553: PUSH1 0x00 00002555: DUP1 00002556: REVERT 00002557: JUMPDEST 00002558: DUP4 00002559: ADD 0000255a: DUP1 0000255b: CALLDATALOAD 0000255c: SWAP2 0000255d: POP 0000255e: PUSH1 0x01 00002560: PUSH1 0x01 00002562: PUSH1 0x40 00002564: SHL 00002565: SUB 00002566: DUP3 00002567: GT 00002568: ISZERO 00002569: PUSH3 0x002572 0000256d: JUMPI 0000256e: PUSH1 0x00 00002570: DUP1 00002571: REVERT 00002572: JUMPDEST 00002573: PUSH1 0x20 00002575: ADD 00002576: SWAP2 00002577: POP 00002578: PUSH1 0x05 0000257a: DUP2 0000257b: SWAP1 0000257c: SHL 0000257d: CALLDATASIZE 0000257e: SUB 0000257f: DUP3 00002580: SGT 00002581: ISZERO 00002582: PUSH3 0x00188c 00002586: JUMPI 00002587: PUSH1 0x00 00002589: DUP1 0000258a: REVERT 0000258b: JUMPDEST 0000258c: DUP8 0000258d: DUP2 0000258e: MSTORE 0000258f: DUP7 00002590: PUSH1 0x20 00002592: DUP3 00002593: ADD 00002594: MSTORE 00002595: PUSH1 0x01 00002597: DUP1 00002598: PUSH1 0xa0 0000259a: SHL 0000259b: SUB 0000259c: DUP7 0000259d: AND 0000259e: PUSH1 0x40 000025a0: DUP3 000025a1: ADD 000025a2: MSTORE 000025a3: PUSH1 0xa0 000025a5: PUSH1 0x60 000025a7: DUP3 000025a8: ADD 000025a9: MSTORE 000025aa: PUSH1 0x00 000025ac: PUSH3 0x0025bb 000025b0: PUSH1 0xa0 000025b2: DUP4 000025b3: ADD 000025b4: DUP7 000025b5: DUP9 000025b6: PUSH3 0x002481 000025ba: JUMP 000025bb: JUMPDEST 000025bc: DUP3 000025bd: DUP2 000025be: SUB 000025bf: PUSH1 0x80 000025c1: DUP5 000025c2: ADD 000025c3: MSTORE 000025c4: PUSH3 0x0025d0 000025c8: DUP2 000025c9: DUP6 000025ca: DUP8 000025cb: PUSH3 0x00244a 000025cf: JUMP 000025d0: JUMPDEST 000025d1: SWAP11 000025d2: SWAP10 000025d3: POP 000025d4: POP 000025d5: POP 000025d6: POP 000025d7: POP 000025d8: POP 000025d9: POP 000025da: POP 000025db: POP 000025dc: POP 000025dd: JUMP 000025de: JUMPDEST 000025df: PUSH1 0x01 000025e1: PUSH1 0x01 000025e3: PUSH1 0xa0 000025e5: SHL 000025e6: SUB 000025e7: DUP8 000025e8: AND 000025e9: DUP2 000025ea: MSTORE 000025eb: PUSH1 0x80 000025ed: PUSH1 0x20 000025ef: DUP3 000025f0: ADD 000025f1: DUP2 000025f2: SWAP1 000025f3: MSTORE 000025f4: PUSH1 0x00 000025f6: SWAP1 000025f7: PUSH3 0x002605 000025fb: SWAP1 000025fc: DUP4 000025fd: ADD 000025fe: DUP8 000025ff: DUP10 00002600: PUSH3 0x00220d 00002604: JUMP 00002605: JUMPDEST 00002606: DUP3 00002607: DUP2 00002608: SUB 00002609: PUSH1 0x40 0000260b: DUP5 0000260c: ADD 0000260d: MSTORE 0000260e: PUSH3 0x00261a 00002612: DUP2 00002613: DUP7 00002614: DUP9 00002615: PUSH3 0x00220d 00002619: JUMP 0000261a: JUMPDEST 0000261b: SWAP2 0000261c: POP 0000261d: POP 0000261e: PUSH1 0xff 00002620: DUP4 00002621: AND 00002622: PUSH1 0x60 00002624: DUP4 00002625: ADD 00002626: MSTORE 00002627: SWAP8 00002628: SWAP7 00002629: POP 0000262a: POP 0000262b: POP 0000262c: POP 0000262d: POP 0000262e: POP 0000262f: POP 00002630: JUMP 00002631: JUMPDEST 00002632: PUSH1 0xa0 00002634: DUP2 00002635: MSTORE 00002636: PUSH1 0x00 00002638: PUSH3 0x002647 0000263c: PUSH1 0xa0 0000263e: DUP4 0000263f: ADD 00002640: DUP11 00002641: DUP13 00002642: PUSH3 0x00220d 00002646: JUMP 00002647: JUMPDEST 00002648: DUP3 00002649: DUP2 0000264a: SUB 0000264b: PUSH1 0x20 0000264d: DUP5 0000264e: ADD 0000264f: MSTORE 00002650: PUSH3 0x00265c 00002654: DUP2 00002655: DUP10 00002656: DUP12 00002657: PUSH3 0x00220d 0000265b: JUMP 0000265c: JUMPDEST 0000265d: SWAP1 0000265e: POP 0000265f: DUP3 00002660: DUP2 00002661: SUB 00002662: PUSH1 0x40 00002664: DUP5 00002665: ADD 00002666: MSTORE 00002667: PUSH3 0x002673 0000266b: DUP2 0000266c: DUP8 0000266d: DUP10 0000266e: PUSH3 0x00220d 00002672: JUMP 00002673: JUMPDEST 00002674: PUSH1 0xff 00002676: SWAP6 00002677: SWAP1 00002678: SWAP6 00002679: AND 0000267a: PUSH1 0x60 0000267c: DUP5 0000267d: ADD 0000267e: MSTORE 0000267f: POP 00002680: POP 00002681: PUSH1 0x80 00002683: ADD 00002684: MSTORE 00002685: SWAP7 00002686: SWAP6 00002687: POP 00002688: POP 00002689: POP 0000268a: POP 0000268b: POP 0000268c: POP 0000268d: JUMP 0000268e: JUMPDEST 0000268f: PUSH1 0x00 00002691: PUSH1 0x20 00002693: DUP3 00002694: DUP5 00002695: SUB 00002696: SLT 00002697: ISZERO 00002698: PUSH3 0x0026a1 0000269c: JUMPI 0000269d: PUSH1 0x00 0000269f: DUP1 000026a0: REVERT 000026a1: JUMPDEST 000026a2: PUSH3 0x001229 000026a6: DUP3 000026a7: PUSH3 0x001ff3 000026ab: JUMP 000026ac: JUMPDEST 000026ad: DUP8 000026ae: DUP2 000026af: MSTORE 000026b0: DUP7 000026b1: PUSH1 0x20 000026b3: DUP3 000026b4: ADD 000026b5: MSTORE 000026b6: DUP6 000026b7: PUSH1 0x40 000026b9: DUP3 000026ba: ADD 000026bb: MSTORE 000026bc: PUSH1 0xe0 000026be: PUSH1 0x60 000026c0: DUP3 000026c1: ADD 000026c2: MSTORE 000026c3: PUSH1 0x00 000026c5: PUSH3 0x0026d3 000026c9: PUSH1 0xe0 000026cb: DUP4 000026cc: ADD 000026cd: DUP8 000026ce: PUSH3 0x00229c 000026d2: JUMP 000026d3: JUMPDEST 000026d4: DUP3 000026d5: DUP2 000026d6: SUB 000026d7: PUSH1 0x80 000026d9: DUP5 000026da: ADD 000026db: MSTORE 000026dc: PUSH3 0x0026e7 000026e0: DUP2 000026e1: DUP8 000026e2: PUSH3 0x00225f 000026e6: JUMP 000026e7: JUMPDEST 000026e8: PUSH1 0xa0 000026ea: DUP5 000026eb: ADD 000026ec: SWAP6 000026ed: SWAP1 000026ee: SWAP6 000026ef: MSTORE 000026f0: POP 000026f1: POP 000026f2: PUSH1 0x01 000026f4: PUSH1 0x01 000026f6: PUSH1 0xa0 000026f8: SHL 000026f9: SUB 000026fa: SWAP2 000026fb: SWAP1 000026fc: SWAP2 000026fd: AND 000026fe: PUSH1 0xc0 00002700: SWAP1 00002701: SWAP2 00002702: ADD 00002703: MSTORE 00002704: SWAP6 00002705: SWAP5 00002706: POP 00002707: POP 00002708: POP 00002709: POP 0000270a: POP 0000270b: JUMP 0000270c: JUMPDEST 0000270d: PUSH1 0x00 0000270f: PUSH1 0x20 00002711: DUP3 00002712: DUP5 00002713: SUB 00002714: SLT 00002715: ISZERO 00002716: PUSH3 0x00271f 0000271a: JUMPI 0000271b: PUSH1 0x00 0000271d: DUP1 0000271e: REVERT 0000271f: JUMPDEST 00002720: DUP2 00002721: MLOAD 00002722: DUP1 00002723: ISZERO 00002724: ISZERO 00002725: DUP2 00002726: EQ 00002727: PUSH3 0x001229 0000272b: JUMPI 0000272c: PUSH1 0x00 0000272e: DUP1 0000272f: REVERT 00002730: JUMPDEST 00002731: PUSH1 0x00 00002733: DUP3 00002734: MLOAD 00002735: PUSH3 0x002744 00002739: DUP2 0000273a: DUP5 0000273b: PUSH1 0x20 0000273d: DUP8 0000273e: ADD 0000273f: PUSH3 0x0022d7 00002743: JUMP 00002744: JUMPDEST 00002745: SWAP2 00002746: SWAP1 00002747: SWAP2 00002748: ADD 00002749: SWAP3 0000274a: SWAP2 0000274b: POP 0000274c: POP 0000274d: JUMP 0000274e: JUMPDEST 0000274f: PUSH4 0x4e487b71 00002754: PUSH1 0xe0 00002756: SHL 00002757: PUSH1 0x00 00002759: MSTORE 0000275a: PUSH1 0x21 0000275c: PUSH1 0x04 0000275e: MSTORE 0000275f: PUSH1 0x24 00002761: PUSH1 0x00 00002763: REVERT 00002764: JUMPDEST 00002765: PUSH1 0x20 00002767: DUP2 00002768: MSTORE 00002769: PUSH1 0x00 0000276b: PUSH3 0x001229 0000276f: PUSH1 0x20 00002771: DUP4 00002772: ADD 00002773: DUP5 00002774: PUSH3 0x002306 00002778: JUMP 00002779: INVALID 0000277a: PUSH1 0x80 0000277c: PUSH1 0x40 0000277e: MSTORE 0000277f: PUSH1 0x00 00002781: NOT 00002782: PUSH1 0x05 00002784: SSTORE 00002785: CALLVALUE 00002786: DUP1 00002787: ISZERO 00002788: PUSH3 0x000017 0000278c: JUMPI 0000278d: PUSH1 0x00 0000278f: DUP1 00002790: REVERT 00002791: JUMPDEST 00002792: POP 00002793: PUSH1 0x40 00002795: MLOAD 00002796: PUSH3 0x000d3e 0000279a: CODESIZE 0000279b: SUB 0000279c: DUP1 0000279d: PUSH3 0x000d3e 000027a1: DUP4 000027a2: CODECOPY 000027a3: DUP2 000027a4: ADD 000027a5: PUSH1 0x40 000027a7: DUP2 000027a8: SWAP1 000027a9: MSTORE 000027aa: PUSH3 0x00003a 000027ae: SWAP2 000027af: PUSH3 0x000307 000027b3: JUMP 000027b4: JUMPDEST 000027b5: DUP3 000027b6: MLOAD 000027b7: DUP4 000027b8: SWAP1 000027b9: DUP4 000027ba: SWAP1 000027bb: PUSH3 0x000053 000027bf: SWAP1 000027c0: PUSH1 0x03 000027c2: SWAP1 000027c3: PUSH1 0x20 000027c5: DUP6 000027c6: ADD 000027c7: SWAP1 000027c8: PUSH3 0x000194 000027cc: JUMP 000027cd: JUMPDEST 000027ce: POP 000027cf: DUP1 000027d0: MLOAD 000027d1: PUSH3 0x000069 000027d5: SWAP1 000027d6: PUSH1 0x04 000027d8: SWAP1 000027d9: PUSH1 0x20 000027db: DUP5 000027dc: ADD 000027dd: SWAP1 000027de: PUSH3 0x000194 000027e2: JUMP 000027e3: JUMPDEST 000027e4: POP 000027e5: POP 000027e6: PUSH1 0x06 000027e8: DUP1 000027e9: SLOAD 000027ea: PUSH1 0x01 000027ec: PUSH1 0x01 000027ee: PUSH1 0xa0 000027f0: SHL 000027f1: SUB 000027f2: DUP8 000027f3: AND 000027f4: PUSH2 0x0100 000027f7: MUL 000027f8: PUSH1 0x01 000027fa: PUSH1 0x01 000027fc: PUSH1 0xa8 000027fe: SHL 000027ff: SUB 00002800: NOT 00002801: SWAP1 00002802: SWAP2 00002803: AND 00002804: PUSH1 0xff 00002806: DUP6 00002807: AND 00002808: OR 00002809: OR 0000280a: SWAP1 0000280b: SSTORE 0000280c: POP 0000280d: PUSH1 0x05 0000280f: SLOAD 00002810: PUSH3 0x0000a2 00002814: SWAP1 00002815: DUP6 00002816: SWAP1 00002817: PUSH3 0x0000ac 0000281b: JUMP 0000281c: JUMPDEST 0000281d: POP 0000281e: POP 0000281f: POP 00002820: POP 00002821: PUSH3 0x00040f 00002825: JUMP 00002826: JUMPDEST 00002827: PUSH1 0x01 00002829: PUSH1 0x01 0000282b: PUSH1 0xa0 0000282d: SHL 0000282e: SUB 0000282f: DUP3 00002830: AND 00002831: PUSH3 0x000107 00002835: JUMPI 00002836: PUSH1 0x40 00002838: MLOAD 00002839: PUSH3 0x461bcd 0000283d: PUSH1 0xe5 0000283f: SHL 00002840: DUP2 00002841: MSTORE 00002842: PUSH1 0x20 00002844: PUSH1 0x04 00002846: DUP3 00002847: ADD 00002848: MSTORE 00002849: PUSH1 0x1f 0000284b: PUSH1 0x24 0000284d: DUP3 0000284e: ADD 0000284f: MSTORE 00002850: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300 00002871: PUSH1 0x44 00002873: DUP3 00002874: ADD 00002875: MSTORE 00002876: PUSH1 0x64 00002878: ADD 00002879: PUSH1 0x40 0000287b: MLOAD 0000287c: DUP1 0000287d: SWAP2 0000287e: SUB 0000287f: SWAP1 00002880: REVERT 00002881: JUMPDEST 00002882: DUP1 00002883: PUSH1 0x02 00002885: PUSH1 0x00 00002887: DUP3 00002888: DUP3 00002889: SLOAD 0000288a: PUSH3 0x00011b 0000288e: SWAP2 0000288f: SWAP1 00002890: PUSH3 0x0003ab 00002894: JUMP 00002895: JUMPDEST 00002896: SWAP1 00002897: SWAP2 00002898: SSTORE 00002899: POP 0000289a: POP 0000289b: PUSH1 0x01 0000289d: PUSH1 0x01 0000289f: PUSH1 0xa0 000028a1: SHL 000028a2: SUB 000028a3: DUP3 000028a4: AND 000028a5: PUSH1 0x00 000028a7: SWAP1 000028a8: DUP2 000028a9: MSTORE 000028aa: PUSH1 0x20 000028ac: DUP2 000028ad: SWAP1 000028ae: MSTORE 000028af: PUSH1 0x40 000028b1: DUP2 000028b2: KECCAK256 000028b3: DUP1 000028b4: SLOAD 000028b5: DUP4 000028b6: SWAP3 000028b7: SWAP1 000028b8: PUSH3 0x00014a 000028bc: SWAP1 000028bd: DUP5 000028be: SWAP1 000028bf: PUSH3 0x0003ab 000028c3: JUMP 000028c4: JUMPDEST 000028c5: SWAP1 000028c6: SWAP2 000028c7: SSTORE 000028c8: POP 000028c9: POP 000028ca: PUSH1 0x40 000028cc: MLOAD 000028cd: DUP2 000028ce: DUP2 000028cf: MSTORE 000028d0: PUSH1 0x01 000028d2: PUSH1 0x01 000028d4: PUSH1 0xa0 000028d6: SHL 000028d7: SUB 000028d8: DUP4 000028d9: AND 000028da: SWAP1 000028db: PUSH1 0x00 000028dd: SWAP1 000028de: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000028ff: SWAP1 00002900: PUSH1 0x20 00002902: ADD 00002903: PUSH1 0x40 00002905: MLOAD 00002906: DUP1 00002907: SWAP2 00002908: SUB 00002909: SWAP1 0000290a: LOG3 0000290b: POP 0000290c: POP 0000290d: JUMP 0000290e: JUMPDEST 0000290f: DUP3 00002910: DUP1 00002911: SLOAD 00002912: PUSH3 0x0001a2 00002916: SWAP1 00002917: PUSH3 0x0003d2 0000291b: JUMP 0000291c: JUMPDEST 0000291d: SWAP1 0000291e: PUSH1 0x00 00002920: MSTORE 00002921: PUSH1 0x20 00002923: PUSH1 0x00 00002925: KECCAK256 00002926: SWAP1 00002927: PUSH1 0x1f 00002929: ADD 0000292a: PUSH1 0x20 0000292c: SWAP1 0000292d: DIV 0000292e: DUP2 0000292f: ADD 00002930: SWAP3 00002931: DUP3 00002932: PUSH3 0x0001c6 00002936: JUMPI 00002937: PUSH1 0x00 00002939: DUP6 0000293a: SSTORE 0000293b: PUSH3 0x000211 0000293f: JUMP 00002940: JUMPDEST 00002941: DUP3 00002942: PUSH1 0x1f 00002944: LT 00002945: PUSH3 0x0001e1 00002949: JUMPI 0000294a: DUP1 0000294b: MLOAD 0000294c: PUSH1 0xff 0000294e: NOT 0000294f: AND 00002950: DUP4 00002951: DUP1 00002952: ADD 00002953: OR 00002954: DUP6 00002955: SSTORE 00002956: PUSH3 0x000211 0000295a: JUMP 0000295b: JUMPDEST 0000295c: DUP3 0000295d: DUP1 0000295e: ADD 0000295f: PUSH1 0x01 00002961: ADD 00002962: DUP6 00002963: SSTORE 00002964: DUP3 00002965: ISZERO 00002966: PUSH3 0x000211 0000296a: JUMPI 0000296b: SWAP2 0000296c: DUP3 0000296d: ADD 0000296e: JUMPDEST 0000296f: DUP3 00002970: DUP2 00002971: GT 00002972: ISZERO 00002973: PUSH3 0x000211 00002977: JUMPI 00002978: DUP3 00002979: MLOAD 0000297a: DUP3 0000297b: SSTORE 0000297c: SWAP2 0000297d: PUSH1 0x20 0000297f: ADD 00002980: SWAP2 00002981: SWAP1 00002982: PUSH1 0x01 00002984: ADD 00002985: SWAP1 00002986: PUSH3 0x0001f4 0000298a: JUMP 0000298b: JUMPDEST 0000298c: POP 0000298d: PUSH3 0x00021f 00002991: SWAP3 00002992: SWAP2 00002993: POP 00002994: PUSH3 0x000223 00002998: JUMP 00002999: JUMPDEST 0000299a: POP 0000299b: SWAP1 0000299c: JUMP 0000299d: JUMPDEST 0000299e: JUMPDEST 0000299f: DUP1 000029a0: DUP3 000029a1: GT 000029a2: ISZERO 000029a3: PUSH3 0x00021f 000029a7: JUMPI 000029a8: PUSH1 0x00 000029aa: DUP2 000029ab: SSTORE 000029ac: PUSH1 0x01 000029ae: ADD 000029af: PUSH3 0x000224 000029b3: JUMP 000029b4: JUMPDEST 000029b5: PUSH4 0x4e487b71 000029ba: PUSH1 0xe0 000029bc: SHL 000029bd: PUSH1 0x00 000029bf: MSTORE 000029c0: PUSH1 0x41 000029c2: PUSH1 0x04 000029c4: MSTORE 000029c5: PUSH1 0x24 000029c7: PUSH1 0x00 000029c9: REVERT 000029ca: JUMPDEST 000029cb: PUSH1 0x00 000029cd: DUP3 000029ce: PUSH1 0x1f 000029d0: DUP4 000029d1: ADD 000029d2: SLT 000029d3: PUSH3 0x000262 000029d7: JUMPI 000029d8: PUSH1 0x00 000029da: DUP1 000029db: REVERT 000029dc: JUMPDEST 000029dd: DUP2 000029de: MLOAD 000029df: PUSH1 0x01 000029e1: PUSH1 0x01 000029e3: PUSH1 0x40 000029e5: SHL 000029e6: SUB 000029e7: DUP1 000029e8: DUP3 000029e9: GT 000029ea: ISZERO 000029eb: PUSH3 0x00027f 000029ef: JUMPI 000029f0: PUSH3 0x00027f 000029f4: PUSH3 0x00023a 000029f8: JUMP 000029f9: JUMPDEST 000029fa: PUSH1 0x40 000029fc: MLOAD 000029fd: PUSH1 0x1f 000029ff: DUP4 00002a00: ADD 00002a01: PUSH1 0x1f 00002a03: NOT 00002a04: SWAP1 00002a05: DUP2 00002a06: AND 00002a07: PUSH1 0x3f 00002a09: ADD 00002a0a: AND 00002a0b: DUP2 00002a0c: ADD 00002a0d: SWAP1 00002a0e: DUP3 00002a0f: DUP3 00002a10: GT 00002a11: DUP2 00002a12: DUP4 00002a13: LT 00002a14: OR 00002a15: ISZERO 00002a16: PUSH3 0x0002aa 00002a1a: JUMPI 00002a1b: PUSH3 0x0002aa 00002a1f: PUSH3 0x00023a 00002a23: JUMP 00002a24: JUMPDEST 00002a25: DUP2 00002a26: PUSH1 0x40 00002a28: MSTORE 00002a29: DUP4 00002a2a: DUP2 00002a2b: MSTORE 00002a2c: PUSH1 0x20 00002a2e: SWAP3 00002a2f: POP 00002a30: DUP7 00002a31: DUP4 00002a32: DUP6 00002a33: DUP9 00002a34: ADD 00002a35: ADD 00002a36: GT 00002a37: ISZERO 00002a38: PUSH3 0x0002c7 00002a3c: JUMPI 00002a3d: PUSH1 0x00 00002a3f: DUP1 00002a40: REVERT 00002a41: JUMPDEST 00002a42: PUSH1 0x00 00002a44: SWAP2 00002a45: POP 00002a46: JUMPDEST 00002a47: DUP4 00002a48: DUP3 00002a49: LT 00002a4a: ISZERO 00002a4b: PUSH3 0x0002eb 00002a4f: JUMPI 00002a50: DUP6 00002a51: DUP3 00002a52: ADD 00002a53: DUP4 00002a54: ADD 00002a55: MLOAD 00002a56: DUP2 00002a57: DUP4 00002a58: ADD 00002a59: DUP5 00002a5a: ADD 00002a5b: MSTORE 00002a5c: SWAP1 00002a5d: DUP3 00002a5e: ADD 00002a5f: SWAP1 00002a60: PUSH3 0x0002cc 00002a64: JUMP 00002a65: JUMPDEST 00002a66: DUP4 00002a67: DUP3 00002a68: GT 00002a69: ISZERO 00002a6a: PUSH3 0x0002fd 00002a6e: JUMPI 00002a6f: PUSH1 0x00 00002a71: DUP4 00002a72: DUP6 00002a73: DUP4 00002a74: ADD 00002a75: ADD 00002a76: MSTORE 00002a77: JUMPDEST 00002a78: SWAP7 00002a79: SWAP6 00002a7a: POP 00002a7b: POP 00002a7c: POP 00002a7d: POP 00002a7e: POP 00002a7f: POP 00002a80: JUMP 00002a81: JUMPDEST 00002a82: PUSH1 0x00 00002a84: DUP1 00002a85: PUSH1 0x00 00002a87: DUP1 00002a88: PUSH1 0x80 00002a8a: DUP6 00002a8b: DUP8 00002a8c: SUB 00002a8d: SLT 00002a8e: ISZERO 00002a8f: PUSH3 0x00031e 00002a93: JUMPI 00002a94: PUSH1 0x00 00002a96: DUP1 00002a97: REVERT 00002a98: JUMPDEST 00002a99: DUP5 00002a9a: MLOAD 00002a9b: PUSH1 0x01 00002a9d: PUSH1 0x01 00002a9f: PUSH1 0xa0 00002aa1: SHL 00002aa2: SUB 00002aa3: DUP2 00002aa4: AND 00002aa5: DUP2 00002aa6: EQ 00002aa7: PUSH3 0x000336 00002aab: JUMPI 00002aac: PUSH1 0x00 00002aae: DUP1 00002aaf: REVERT 00002ab0: JUMPDEST 00002ab1: PUSH1 0x20 00002ab3: DUP7 00002ab4: ADD 00002ab5: MLOAD 00002ab6: SWAP1 00002ab7: SWAP5 00002ab8: POP 00002ab9: PUSH1 0x01 00002abb: PUSH1 0x01 00002abd: PUSH1 0x40 00002abf: SHL 00002ac0: SUB 00002ac1: DUP1 00002ac2: DUP3 00002ac3: GT 00002ac4: ISZERO 00002ac5: PUSH3 0x000354 00002ac9: JUMPI 00002aca: PUSH1 0x00 00002acc: DUP1 00002acd: REVERT 00002ace: JUMPDEST 00002acf: PUSH3 0x000362 00002ad3: DUP9 00002ad4: DUP4 00002ad5: DUP10 00002ad6: ADD 00002ad7: PUSH3 0x000250 00002adb: JUMP 00002adc: JUMPDEST 00002add: SWAP5 00002ade: POP 00002adf: PUSH1 0x40 00002ae1: DUP8 00002ae2: ADD 00002ae3: MLOAD 00002ae4: SWAP2 00002ae5: POP 00002ae6: DUP1 00002ae7: DUP3 00002ae8: GT 00002ae9: ISZERO 00002aea: PUSH3 0x000379 00002aee: JUMPI 00002aef: PUSH1 0x00 00002af1: DUP1 00002af2: REVERT 00002af3: JUMPDEST 00002af4: POP 00002af5: PUSH3 0x000388 00002af9: DUP8 00002afa: DUP3 00002afb: DUP9 00002afc: ADD 00002afd: PUSH3 0x000250 00002b01: JUMP 00002b02: JUMPDEST 00002b03: SWAP3 00002b04: POP 00002b05: POP 00002b06: PUSH1 0x60 00002b08: DUP6 00002b09: ADD 00002b0a: MLOAD 00002b0b: PUSH1 0xff 00002b0d: DUP2 00002b0e: AND 00002b0f: DUP2 00002b10: EQ 00002b11: PUSH3 0x0003a0 00002b15: JUMPI 00002b16: PUSH1 0x00 00002b18: DUP1 00002b19: REVERT 00002b1a: JUMPDEST 00002b1b: SWAP4 00002b1c: SWAP7 00002b1d: SWAP3 00002b1e: SWAP6 00002b1f: POP 00002b20: SWAP1 00002b21: SWAP4 00002b22: POP 00002b23: POP 00002b24: JUMP 00002b25: JUMPDEST 00002b26: PUSH1 0x00 00002b28: DUP3 00002b29: NOT 00002b2a: DUP3 00002b2b: GT 00002b2c: ISZERO 00002b2d: PUSH3 0x0003cd 00002b31: JUMPI 00002b32: PUSH4 0x4e487b71 00002b37: PUSH1 0xe0 00002b39: SHL 00002b3a: PUSH1 0x00 00002b3c: MSTORE 00002b3d: PUSH1 0x11 00002b3f: PUSH1 0x04 00002b41: MSTORE 00002b42: PUSH1 0x24 00002b44: PUSH1 0x00 00002b46: REVERT 00002b47: JUMPDEST 00002b48: POP 00002b49: ADD 00002b4a: SWAP1 00002b4b: JUMP 00002b4c: JUMPDEST 00002b4d: PUSH1 0x01 00002b4f: DUP2 00002b50: DUP2 00002b51: SHR 00002b52: SWAP1 00002b53: DUP3 00002b54: AND 00002b55: DUP1 00002b56: PUSH3 0x0003e7 00002b5a: JUMPI 00002b5b: PUSH1 0x7f 00002b5d: DUP3 00002b5e: AND 00002b5f: SWAP2 00002b60: POP 00002b61: JUMPDEST 00002b62: PUSH1 0x20 00002b64: DUP3 00002b65: LT 00002b66: DUP2 00002b67: EQ 00002b68: ISZERO 00002b69: PUSH3 0x000409 00002b6d: JUMPI 00002b6e: PUSH4 0x4e487b71 00002b73: PUSH1 0xe0 00002b75: SHL 00002b76: PUSH1 0x00 00002b78: MSTORE 00002b79: PUSH1 0x22 00002b7b: PUSH1 0x04 00002b7d: MSTORE 00002b7e: PUSH1 0x24 00002b80: PUSH1 0x00 00002b82: REVERT 00002b83: JUMPDEST 00002b84: POP 00002b85: SWAP2 00002b86: SWAP1 00002b87: POP 00002b88: JUMP 00002b89: JUMPDEST 00002b8a: PUSH2 0x091f 00002b8d: DUP1 00002b8e: PUSH3 0x00041f 00002b92: PUSH1 0x00 00002b94: CODECOPY 00002b95: PUSH1 0x00 00002b97: RETURN 00002b98: INVALID 00002b99: PUSH1 0x80 00002b9b: PUSH1 0x40 00002b9d: MSTORE 00002b9e: CALLVALUE 00002b9f: DUP1 00002ba0: ISZERO 00002ba1: PUSH2 0x0010 00002ba4: JUMPI 00002ba5: PUSH1 0x00 00002ba7: DUP1 00002ba8: REVERT 00002ba9: JUMPDEST 00002baa: POP 00002bab: PUSH1 0x04 00002bad: CALLDATASIZE 00002bae: LT 00002baf: PUSH2 0x00a9 00002bb2: JUMPI 00002bb3: PUSH1 0x00 00002bb5: CALLDATALOAD 00002bb6: PUSH1 0xe0 00002bb8: SHR 00002bb9: DUP1 00002bba: PUSH4 0x39509351 00002bbf: GT 00002bc0: PUSH2 0x0071 00002bc3: JUMPI 00002bc4: DUP1 00002bc5: PUSH4 0x39509351 00002bca: EQ 00002bcb: PUSH2 0x012d 00002bce: JUMPI 00002bcf: DUP1 00002bd0: PUSH4 0x70a08231 00002bd5: EQ 00002bd6: PUSH2 0x0140 00002bd9: JUMPI 00002bda: DUP1 00002bdb: PUSH4 0x95d89b41 00002be0: EQ 00002be1: PUSH2 0x0169 00002be4: JUMPI 00002be5: DUP1 00002be6: PUSH4 0xa457c2d7 00002beb: EQ 00002bec: PUSH2 0x0171 00002bef: JUMPI 00002bf0: DUP1 00002bf1: PUSH4 0xa9059cbb 00002bf6: EQ 00002bf7: PUSH2 0x0184 00002bfa: JUMPI 00002bfb: DUP1 00002bfc: PUSH4 0xdd62ed3e 00002c01: EQ 00002c02: PUSH2 0x0197 00002c05: JUMPI 00002c06: PUSH1 0x00 00002c08: DUP1 00002c09: REVERT 00002c0a: JUMPDEST 00002c0b: DUP1 00002c0c: PUSH4 0x06fdde03 00002c11: EQ 00002c12: PUSH2 0x00ae 00002c15: JUMPI 00002c16: DUP1 00002c17: PUSH4 0x095ea7b3 00002c1c: EQ 00002c1d: PUSH2 0x00cc 00002c20: JUMPI 00002c21: DUP1 00002c22: PUSH4 0x18160ddd 00002c27: EQ 00002c28: PUSH2 0x00ef 00002c2b: JUMPI 00002c2c: DUP1 00002c2d: PUSH4 0x23b872dd 00002c32: EQ 00002c33: PUSH2 0x0105 00002c36: JUMPI 00002c37: DUP1 00002c38: PUSH4 0x313ce567 00002c3d: EQ 00002c3e: PUSH2 0x0118 00002c41: JUMPI 00002c42: JUMPDEST 00002c43: PUSH1 0x00 00002c45: DUP1 00002c46: REVERT 00002c47: JUMPDEST 00002c48: PUSH2 0x00b6 00002c4b: PUSH2 0x01d0 00002c4e: JUMP 00002c4f: JUMPDEST 00002c50: PUSH1 0x40 00002c52: MLOAD 00002c53: PUSH2 0x00c3 00002c56: SWAP2 00002c57: SWAP1 00002c58: PUSH2 0x073d 00002c5b: JUMP 00002c5c: JUMPDEST 00002c5d: PUSH1 0x40 00002c5f: MLOAD 00002c60: DUP1 00002c61: SWAP2 00002c62: SUB 00002c63: SWAP1 00002c64: RETURN 00002c65: JUMPDEST 00002c66: PUSH2 0x00df 00002c69: PUSH2 0x00da 00002c6c: CALLDATASIZE 00002c6d: PUSH1 0x04 00002c6f: PUSH2 0x07ae 00002c72: JUMP 00002c73: JUMPDEST 00002c74: PUSH2 0x0262 00002c77: JUMP 00002c78: JUMPDEST 00002c79: PUSH1 0x40 00002c7b: MLOAD 00002c7c: SWAP1 00002c7d: ISZERO 00002c7e: ISZERO 00002c7f: DUP2 00002c80: MSTORE 00002c81: PUSH1 0x20 00002c83: ADD 00002c84: PUSH2 0x00c3 00002c87: JUMP 00002c88: JUMPDEST 00002c89: PUSH2 0x00f7 00002c8c: PUSH2 0x0278 00002c8f: JUMP 00002c90: JUMPDEST 00002c91: PUSH1 0x40 00002c93: MLOAD 00002c94: SWAP1 00002c95: DUP2 00002c96: MSTORE 00002c97: PUSH1 0x20 00002c99: ADD 00002c9a: PUSH2 0x00c3 00002c9d: JUMP 00002c9e: JUMPDEST 00002c9f: PUSH2 0x00df 00002ca2: PUSH2 0x0113 00002ca5: CALLDATASIZE 00002ca6: PUSH1 0x04 00002ca8: PUSH2 0x07d8 00002cab: JUMP 00002cac: JUMPDEST 00002cad: PUSH2 0x02aa 00002cb0: JUMP 00002cb1: JUMPDEST 00002cb2: PUSH1 0x06 00002cb4: SLOAD 00002cb5: PUSH1 0x40 00002cb7: MLOAD 00002cb8: PUSH1 0xff 00002cba: SWAP1 00002cbb: SWAP2 00002cbc: AND 00002cbd: DUP2 00002cbe: MSTORE 00002cbf: PUSH1 0x20 00002cc1: ADD 00002cc2: PUSH2 0x00c3 00002cc5: JUMP 00002cc6: JUMPDEST 00002cc7: PUSH2 0x00df 00002cca: PUSH2 0x013b 00002ccd: CALLDATASIZE 00002cce: PUSH1 0x04 00002cd0: PUSH2 0x07ae 00002cd3: JUMP 00002cd4: JUMPDEST 00002cd5: PUSH2 0x0359 00002cd8: JUMP 00002cd9: JUMPDEST 00002cda: PUSH2 0x00f7 00002cdd: PUSH2 0x014e 00002ce0: CALLDATASIZE 00002ce1: PUSH1 0x04 00002ce3: PUSH2 0x0814 00002ce6: JUMP 00002ce7: JUMPDEST 00002ce8: PUSH1 0x01 00002cea: PUSH1 0x01 00002cec: PUSH1 0xa0 00002cee: SHL 00002cef: SUB 00002cf0: AND 00002cf1: PUSH1 0x00 00002cf3: SWAP1 00002cf4: DUP2 00002cf5: MSTORE 00002cf6: PUSH1 0x20 00002cf8: DUP2 00002cf9: SWAP1 00002cfa: MSTORE 00002cfb: PUSH1 0x40 00002cfd: SWAP1 00002cfe: KECCAK256 00002cff: SLOAD 00002d00: SWAP1 00002d01: JUMP 00002d02: JUMPDEST 00002d03: PUSH2 0x00b6 00002d06: PUSH2 0x0395 00002d09: JUMP 00002d0a: JUMPDEST 00002d0b: PUSH2 0x00df 00002d0e: PUSH2 0x017f 00002d11: CALLDATASIZE 00002d12: PUSH1 0x04 00002d14: PUSH2 0x07ae 00002d17: JUMP 00002d18: JUMPDEST 00002d19: PUSH2 0x03a4 00002d1c: JUMP 00002d1d: JUMPDEST 00002d1e: PUSH2 0x00df 00002d21: PUSH2 0x0192 00002d24: CALLDATASIZE 00002d25: PUSH1 0x04 00002d27: PUSH2 0x07ae 00002d2a: JUMP 00002d2b: JUMPDEST 00002d2c: PUSH2 0x043d 00002d2f: JUMP 00002d30: JUMPDEST 00002d31: PUSH2 0x00f7 00002d34: PUSH2 0x01a5 00002d37: CALLDATASIZE 00002d38: PUSH1 0x04 00002d3a: PUSH2 0x0836 00002d3d: JUMP 00002d3e: JUMPDEST 00002d3f: PUSH1 0x01 00002d41: PUSH1 0x01 00002d43: PUSH1 0xa0 00002d45: SHL 00002d46: SUB 00002d47: SWAP2 00002d48: DUP3 00002d49: AND 00002d4a: PUSH1 0x00 00002d4c: SWAP1 00002d4d: DUP2 00002d4e: MSTORE 00002d4f: PUSH1 0x01 00002d51: PUSH1 0x20 00002d53: SWAP1 00002d54: DUP2 00002d55: MSTORE 00002d56: PUSH1 0x40 00002d58: DUP1 00002d59: DUP4 00002d5a: KECCAK256 00002d5b: SWAP4 00002d5c: SWAP1 00002d5d: SWAP5 00002d5e: AND 00002d5f: DUP3 00002d60: MSTORE 00002d61: SWAP2 00002d62: SWAP1 00002d63: SWAP2 00002d64: MSTORE 00002d65: KECCAK256 00002d66: SLOAD 00002d67: SWAP1 00002d68: JUMP 00002d69: JUMPDEST 00002d6a: PUSH1 0x60 00002d6c: PUSH1 0x03 00002d6e: DUP1 00002d6f: SLOAD 00002d70: PUSH2 0x01df 00002d73: SWAP1 00002d74: PUSH2 0x0869 00002d77: JUMP 00002d78: JUMPDEST 00002d79: DUP1 00002d7a: PUSH1 0x1f 00002d7c: ADD 00002d7d: PUSH1 0x20 00002d7f: DUP1 00002d80: SWAP2 00002d81: DIV 00002d82: MUL 00002d83: PUSH1 0x20 00002d85: ADD 00002d86: PUSH1 0x40 00002d88: MLOAD 00002d89: SWAP1 00002d8a: DUP2 00002d8b: ADD 00002d8c: PUSH1 0x40 00002d8e: MSTORE 00002d8f: DUP1 00002d90: SWAP3 00002d91: SWAP2 00002d92: SWAP1 00002d93: DUP2 00002d94: DUP2 00002d95: MSTORE 00002d96: PUSH1 0x20 00002d98: ADD 00002d99: DUP3 00002d9a: DUP1 00002d9b: SLOAD 00002d9c: PUSH2 0x020b 00002d9f: SWAP1 00002da0: PUSH2 0x0869 00002da3: JUMP 00002da4: JUMPDEST 00002da5: DUP1 00002da6: ISZERO 00002da7: PUSH2 0x0258 00002daa: JUMPI 00002dab: DUP1 00002dac: PUSH1 0x1f 00002dae: LT 00002daf: PUSH2 0x022d 00002db2: JUMPI 00002db3: PUSH2 0x0100 00002db6: DUP1 00002db7: DUP4 00002db8: SLOAD 00002db9: DIV 00002dba: MUL 00002dbb: DUP4 00002dbc: MSTORE 00002dbd: SWAP2 00002dbe: PUSH1 0x20 00002dc0: ADD 00002dc1: SWAP2 00002dc2: PUSH2 0x0258 00002dc5: JUMP 00002dc6: JUMPDEST 00002dc7: DUP3 00002dc8: ADD 00002dc9: SWAP2 00002dca: SWAP1 00002dcb: PUSH1 0x00 00002dcd: MSTORE 00002dce: PUSH1 0x20 00002dd0: PUSH1 0x00 00002dd2: KECCAK256 00002dd3: SWAP1 00002dd4: JUMPDEST 00002dd5: DUP2 00002dd6: SLOAD 00002dd7: DUP2 00002dd8: MSTORE 00002dd9: SWAP1 00002dda: PUSH1 0x01 00002ddc: ADD 00002ddd: SWAP1 00002dde: PUSH1 0x20 00002de0: ADD 00002de1: DUP1 00002de2: DUP4 00002de3: GT 00002de4: PUSH2 0x023b 00002de7: JUMPI 00002de8: DUP3 00002de9: SWAP1 00002dea: SUB 00002deb: PUSH1 0x1f 00002ded: AND 00002dee: DUP3 00002def: ADD 00002df0: SWAP2 00002df1: JUMPDEST 00002df2: POP 00002df3: POP 00002df4: POP 00002df5: POP 00002df6: POP 00002df7: SWAP1 00002df8: POP 00002df9: SWAP1 00002dfa: JUMP 00002dfb: JUMPDEST 00002dfc: PUSH1 0x00 00002dfe: PUSH2 0x026f 00002e01: CALLER 00002e02: DUP5 00002e03: DUP5 00002e04: PUSH2 0x044a 00002e07: JUMP 00002e08: JUMPDEST 00002e09: POP 00002e0a: PUSH1 0x01 00002e0c: SWAP3 00002e0d: SWAP2 00002e0e: POP 00002e0f: POP 00002e10: JUMP 00002e11: JUMPDEST 00002e12: PUSH1 0x06 00002e14: SLOAD 00002e15: PUSH2 0x0100 00002e18: SWAP1 00002e19: DIV 00002e1a: PUSH1 0x01 00002e1c: PUSH1 0x01 00002e1e: PUSH1 0xa0 00002e20: SHL 00002e21: SUB 00002e22: AND 00002e23: PUSH1 0x00 00002e25: SWAP1 00002e26: DUP2 00002e27: MSTORE 00002e28: PUSH1 0x20 00002e2a: DUP2 00002e2b: SWAP1 00002e2c: MSTORE 00002e2d: PUSH1 0x40 00002e2f: DUP2 00002e30: KECCAK256 00002e31: SLOAD 00002e32: PUSH1 0x05 00002e34: SLOAD 00002e35: PUSH2 0x02a5 00002e38: SWAP2 00002e39: SWAP1 00002e3a: PUSH2 0x08ba 00002e3d: JUMP 00002e3e: JUMPDEST 00002e3f: SWAP1 00002e40: POP 00002e41: SWAP1 00002e42: JUMP 00002e43: JUMPDEST 00002e44: PUSH1 0x00 00002e46: PUSH2 0x02b7 00002e49: DUP5 00002e4a: DUP5 00002e4b: DUP5 00002e4c: PUSH2 0x056e 00002e4f: JUMP 00002e50: JUMPDEST 00002e51: PUSH1 0x01 00002e53: PUSH1 0x01 00002e55: PUSH1 0xa0 00002e57: SHL 00002e58: SUB 00002e59: DUP5 00002e5a: AND 00002e5b: PUSH1 0x00 00002e5d: SWAP1 00002e5e: DUP2 00002e5f: MSTORE 00002e60: PUSH1 0x01 00002e62: PUSH1 0x20 00002e64: SWAP1 00002e65: DUP2 00002e66: MSTORE 00002e67: PUSH1 0x40 00002e69: DUP1 00002e6a: DUP4 00002e6b: KECCAK256 00002e6c: CALLER 00002e6d: DUP5 00002e6e: MSTORE 00002e6f: SWAP1 00002e70: SWAP2 00002e71: MSTORE 00002e72: SWAP1 00002e73: KECCAK256 00002e74: SLOAD 00002e75: DUP3 00002e76: DUP2 00002e77: LT 00002e78: ISZERO 00002e79: PUSH2 0x0341 00002e7c: JUMPI 00002e7d: PUSH1 0x40 00002e7f: MLOAD 00002e80: PUSH3 0x461bcd 00002e84: PUSH1 0xe5 00002e86: SHL 00002e87: DUP2 00002e88: MSTORE 00002e89: PUSH1 0x20 00002e8b: PUSH1 0x04 00002e8d: DUP3 00002e8e: ADD 00002e8f: MSTORE 00002e90: PUSH1 0x28 00002e92: PUSH1 0x24 00002e94: DUP3 00002e95: ADD 00002e96: MSTORE 00002e97: PUSH32 0x45524332303a207472616e7366657220616d6f756e7420657863656564732061 00002eb8: PUSH1 0x44 00002eba: DUP3 00002ebb: ADD 00002ebc: MSTORE 00002ebd: PUSH8 0x6c6c6f77616e6365 00002ec6: PUSH1 0xc0 00002ec8: SHL 00002ec9: PUSH1 0x64 00002ecb: DUP3 00002ecc: ADD 00002ecd: MSTORE 00002ece: PUSH1 0x84 00002ed0: ADD 00002ed1: JUMPDEST 00002ed2: PUSH1 0x40 00002ed4: MLOAD 00002ed5: DUP1 00002ed6: SWAP2 00002ed7: SUB 00002ed8: SWAP1 00002ed9: REVERT 00002eda: JUMPDEST 00002edb: PUSH2 0x034e 00002ede: DUP6 00002edf: CALLER 00002ee0: DUP6 00002ee1: DUP5 00002ee2: SUB 00002ee3: PUSH2 0x044a 00002ee6: JUMP 00002ee7: JUMPDEST 00002ee8: POP 00002ee9: PUSH1 0x01 00002eeb: SWAP5 00002eec: SWAP4 00002eed: POP 00002eee: POP 00002eef: POP 00002ef0: POP 00002ef1: JUMP 00002ef2: JUMPDEST 00002ef3: CALLER 00002ef4: PUSH1 0x00 00002ef6: DUP2 00002ef7: DUP2 00002ef8: MSTORE 00002ef9: PUSH1 0x01 00002efb: PUSH1 0x20 00002efd: SWAP1 00002efe: DUP2 00002eff: MSTORE 00002f00: PUSH1 0x40 00002f02: DUP1 00002f03: DUP4 00002f04: KECCAK256 00002f05: PUSH1 0x01 00002f07: PUSH1 0x01 00002f09: PUSH1 0xa0 00002f0b: SHL 00002f0c: SUB 00002f0d: DUP8 00002f0e: AND 00002f0f: DUP5 00002f10: MSTORE 00002f11: SWAP1 00002f12: SWAP2 00002f13: MSTORE 00002f14: DUP2 00002f15: KECCAK256 00002f16: SLOAD 00002f17: SWAP1 00002f18: SWAP2 00002f19: PUSH2 0x026f 00002f1c: SWAP2 00002f1d: DUP6 00002f1e: SWAP1 00002f1f: PUSH2 0x0390 00002f22: SWAP1 00002f23: DUP7 00002f24: SWAP1 00002f25: PUSH2 0x08d1 00002f28: JUMP 00002f29: JUMPDEST 00002f2a: PUSH2 0x044a 00002f2d: JUMP 00002f2e: JUMPDEST 00002f2f: PUSH1 0x60 00002f31: PUSH1 0x04 00002f33: DUP1 00002f34: SLOAD 00002f35: PUSH2 0x01df 00002f38: SWAP1 00002f39: PUSH2 0x0869 00002f3c: JUMP 00002f3d: JUMPDEST 00002f3e: CALLER 00002f3f: PUSH1 0x00 00002f41: SWAP1 00002f42: DUP2 00002f43: MSTORE 00002f44: PUSH1 0x01 00002f46: PUSH1 0x20 00002f48: SWAP1 00002f49: DUP2 00002f4a: MSTORE 00002f4b: PUSH1 0x40 00002f4d: DUP1 00002f4e: DUP4 00002f4f: KECCAK256 00002f50: PUSH1 0x01 00002f52: PUSH1 0x01 00002f54: PUSH1 0xa0 00002f56: SHL 00002f57: SUB 00002f58: DUP7 00002f59: AND 00002f5a: DUP5 00002f5b: MSTORE 00002f5c: SWAP1 00002f5d: SWAP2 00002f5e: MSTORE 00002f5f: DUP2 00002f60: KECCAK256 00002f61: SLOAD 00002f62: DUP3 00002f63: DUP2 00002f64: LT 00002f65: ISZERO 00002f66: PUSH2 0x0426 00002f69: JUMPI 00002f6a: PUSH1 0x40 00002f6c: MLOAD 00002f6d: PUSH3 0x461bcd 00002f71: PUSH1 0xe5 00002f73: SHL 00002f74: DUP2 00002f75: MSTORE 00002f76: PUSH1 0x20 00002f78: PUSH1 0x04 00002f7a: DUP3 00002f7b: ADD 00002f7c: MSTORE 00002f7d: PUSH1 0x25 00002f7f: PUSH1 0x24 00002f81: DUP3 00002f82: ADD 00002f83: MSTORE 00002f84: PUSH32 0x45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77 00002fa5: PUSH1 0x44 00002fa7: DUP3 00002fa8: ADD 00002fa9: MSTORE 00002faa: PUSH5 0x207a65726f 00002fb0: PUSH1 0xd8 00002fb2: SHL 00002fb3: PUSH1 0x64 00002fb5: DUP3 00002fb6: ADD 00002fb7: MSTORE 00002fb8: PUSH1 0x84 00002fba: ADD 00002fbb: PUSH2 0x0338 00002fbe: JUMP 00002fbf: JUMPDEST 00002fc0: PUSH2 0x0433 00002fc3: CALLER 00002fc4: DUP6 00002fc5: DUP6 00002fc6: DUP5 00002fc7: SUB 00002fc8: PUSH2 0x044a 00002fcb: JUMP 00002fcc: JUMPDEST 00002fcd: POP 00002fce: PUSH1 0x01 00002fd0: SWAP4 00002fd1: SWAP3 00002fd2: POP 00002fd3: POP 00002fd4: POP 00002fd5: JUMP 00002fd6: JUMPDEST 00002fd7: PUSH1 0x00 00002fd9: PUSH2 0x026f 00002fdc: CALLER 00002fdd: DUP5 00002fde: DUP5 00002fdf: PUSH2 0x056e 00002fe2: JUMP 00002fe3: JUMPDEST 00002fe4: PUSH1 0x01 00002fe6: PUSH1 0x01 00002fe8: PUSH1 0xa0 00002fea: SHL 00002feb: SUB 00002fec: DUP4 00002fed: AND 00002fee: PUSH2 0x04ac 00002ff1: JUMPI 00002ff2: PUSH1 0x40 00002ff4: MLOAD 00002ff5: PUSH3 0x461bcd 00002ff9: PUSH1 0xe5 00002ffb: SHL 00002ffc: DUP2 00002ffd: MSTORE 00002ffe: PUSH1 0x20 00003000: PUSH1 0x04 00003002: DUP3 00003003: ADD 00003004: MSTORE 00003005: PUSH1 0x24 00003007: DUP1 00003008: DUP3 00003009: ADD 0000300a: MSTORE 0000300b: PUSH32 0x45524332303a20617070726f76652066726f6d20746865207a65726f20616464 0000302c: PUSH1 0x44 0000302e: DUP3 0000302f: ADD 00003030: MSTORE 00003031: PUSH4 0x72657373 00003036: PUSH1 0xe0 00003038: SHL 00003039: PUSH1 0x64 0000303b: DUP3 0000303c: ADD 0000303d: MSTORE 0000303e: PUSH1 0x84 00003040: ADD 00003041: PUSH2 0x0338 00003044: JUMP 00003045: JUMPDEST 00003046: PUSH1 0x01 00003048: PUSH1 0x01 0000304a: PUSH1 0xa0 0000304c: SHL 0000304d: SUB 0000304e: DUP3 0000304f: AND 00003050: PUSH2 0x050d 00003053: JUMPI 00003054: PUSH1 0x40 00003056: MLOAD 00003057: PUSH3 0x461bcd 0000305b: PUSH1 0xe5 0000305d: SHL 0000305e: DUP2 0000305f: MSTORE 00003060: PUSH1 0x20 00003062: PUSH1 0x04 00003064: DUP3 00003065: ADD 00003066: MSTORE 00003067: PUSH1 0x22 00003069: PUSH1 0x24 0000306b: DUP3 0000306c: ADD 0000306d: MSTORE 0000306e: PUSH32 0x45524332303a20617070726f766520746f20746865207a65726f206164647265 0000308f: PUSH1 0x44 00003091: DUP3 00003092: ADD 00003093: MSTORE 00003094: PUSH2 0x7373 00003097: PUSH1 0xf0 00003099: SHL 0000309a: PUSH1 0x64 0000309c: DUP3 0000309d: ADD 0000309e: MSTORE 0000309f: PUSH1 0x84 000030a1: ADD 000030a2: PUSH2 0x0338 000030a5: JUMP 000030a6: JUMPDEST 000030a7: PUSH1 0x01 000030a9: PUSH1 0x01 000030ab: PUSH1 0xa0 000030ad: SHL 000030ae: SUB 000030af: DUP4 000030b0: DUP2 000030b1: AND 000030b2: PUSH1 0x00 000030b4: DUP2 000030b5: DUP2 000030b6: MSTORE 000030b7: PUSH1 0x01 000030b9: PUSH1 0x20 000030bb: SWAP1 000030bc: DUP2 000030bd: MSTORE 000030be: PUSH1 0x40 000030c0: DUP1 000030c1: DUP4 000030c2: KECCAK256 000030c3: SWAP5 000030c4: DUP8 000030c5: AND 000030c6: DUP1 000030c7: DUP5 000030c8: MSTORE 000030c9: SWAP5 000030ca: DUP3 000030cb: MSTORE 000030cc: SWAP2 000030cd: DUP3 000030ce: SWAP1 000030cf: KECCAK256 000030d0: DUP6 000030d1: SWAP1 000030d2: SSTORE 000030d3: SWAP1 000030d4: MLOAD 000030d5: DUP5 000030d6: DUP2 000030d7: MSTORE 000030d8: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 000030f9: SWAP2 000030fa: ADD 000030fb: PUSH1 0x40 000030fd: MLOAD 000030fe: DUP1 000030ff: SWAP2 00003100: SUB 00003101: SWAP1 00003102: LOG3 00003103: POP 00003104: POP 00003105: POP 00003106: JUMP 00003107: JUMPDEST 00003108: PUSH1 0x01 0000310a: PUSH1 0x01 0000310c: PUSH1 0xa0 0000310e: SHL 0000310f: SUB 00003110: DUP4 00003111: AND 00003112: PUSH2 0x05d2 00003115: JUMPI 00003116: PUSH1 0x40 00003118: MLOAD 00003119: PUSH3 0x461bcd 0000311d: PUSH1 0xe5 0000311f: SHL 00003120: DUP2 00003121: MSTORE 00003122: PUSH1 0x20 00003124: PUSH1 0x04 00003126: DUP3 00003127: ADD 00003128: MSTORE 00003129: PUSH1 0x25 0000312b: PUSH1 0x24 0000312d: DUP3 0000312e: ADD 0000312f: MSTORE 00003130: PUSH32 0x45524332303a207472616e736665722066726f6d20746865207a65726f206164 00003151: PUSH1 0x44 00003153: DUP3 00003154: ADD 00003155: MSTORE 00003156: PUSH5 0x6472657373 0000315c: PUSH1 0xd8 0000315e: SHL 0000315f: PUSH1 0x64 00003161: DUP3 00003162: ADD 00003163: MSTORE 00003164: PUSH1 0x84 00003166: ADD 00003167: PUSH2 0x0338 0000316a: JUMP 0000316b: JUMPDEST 0000316c: PUSH1 0x01 0000316e: PUSH1 0x01 00003170: PUSH1 0xa0 00003172: SHL 00003173: SUB 00003174: DUP3 00003175: AND 00003176: PUSH2 0x0634 00003179: JUMPI 0000317a: PUSH1 0x40 0000317c: MLOAD 0000317d: PUSH3 0x461bcd 00003181: PUSH1 0xe5 00003183: SHL 00003184: DUP2 00003185: MSTORE 00003186: PUSH1 0x20 00003188: PUSH1 0x04 0000318a: DUP3 0000318b: ADD 0000318c: MSTORE 0000318d: PUSH1 0x23 0000318f: PUSH1 0x24 00003191: DUP3 00003192: ADD 00003193: MSTORE 00003194: PUSH32 0x45524332303a207472616e7366657220746f20746865207a65726f2061646472 000031b5: PUSH1 0x44 000031b7: DUP3 000031b8: ADD 000031b9: MSTORE 000031ba: PUSH3 0x657373 000031be: PUSH1 0xe8 000031c0: SHL 000031c1: PUSH1 0x64 000031c3: DUP3 000031c4: ADD 000031c5: MSTORE 000031c6: PUSH1 0x84 000031c8: ADD 000031c9: PUSH2 0x0338 000031cc: JUMP 000031cd: JUMPDEST 000031ce: PUSH1 0x01 000031d0: PUSH1 0x01 000031d2: PUSH1 0xa0 000031d4: SHL 000031d5: SUB 000031d6: DUP4 000031d7: AND 000031d8: PUSH1 0x00 000031da: SWAP1 000031db: DUP2 000031dc: MSTORE 000031dd: PUSH1 0x20 000031df: DUP2 000031e0: SWAP1 000031e1: MSTORE 000031e2: PUSH1 0x40 000031e4: SWAP1 000031e5: KECCAK256 000031e6: SLOAD 000031e7: DUP2 000031e8: DUP2 000031e9: LT 000031ea: ISZERO 000031eb: PUSH2 0x06ac 000031ee: JUMPI 000031ef: PUSH1 0x40 000031f1: MLOAD 000031f2: PUSH3 0x461bcd 000031f6: PUSH1 0xe5 000031f8: SHL 000031f9: DUP2 000031fa: MSTORE 000031fb: PUSH1 0x20 000031fd: PUSH1 0x04 000031ff: DUP3 00003200: ADD 00003201: MSTORE 00003202: PUSH1 0x26 00003204: PUSH1 0x24 00003206: DUP3 00003207: ADD 00003208: MSTORE 00003209: PUSH32 0x45524332303a207472616e7366657220616d6f756e7420657863656564732062 0000322a: PUSH1 0x44 0000322c: DUP3 0000322d: ADD 0000322e: MSTORE 0000322f: PUSH6 0x616c616e6365 00003236: PUSH1 0xd0 00003238: SHL 00003239: PUSH1 0x64 0000323b: DUP3 0000323c: ADD 0000323d: MSTORE 0000323e: PUSH1 0x84 00003240: ADD 00003241: PUSH2 0x0338 00003244: JUMP 00003245: JUMPDEST 00003246: PUSH1 0x01 00003248: PUSH1 0x01 0000324a: PUSH1 0xa0 0000324c: SHL 0000324d: SUB 0000324e: DUP1 0000324f: DUP6 00003250: AND 00003251: PUSH1 0x00 00003253: SWAP1 00003254: DUP2 00003255: MSTORE 00003256: PUSH1 0x20 00003258: DUP2 00003259: SWAP1 0000325a: MSTORE 0000325b: PUSH1 0x40 0000325d: DUP1 0000325e: DUP3 0000325f: KECCAK256 00003260: DUP6 00003261: DUP6 00003262: SUB 00003263: SWAP1 00003264: SSTORE 00003265: SWAP2 00003266: DUP6 00003267: AND 00003268: DUP2 00003269: MSTORE 0000326a: SWAP1 0000326b: DUP2 0000326c: KECCAK256 0000326d: DUP1 0000326e: SLOAD 0000326f: DUP5 00003270: SWAP3 00003271: SWAP1 00003272: PUSH2 0x06e3 00003275: SWAP1 00003276: DUP5 00003277: SWAP1 00003278: PUSH2 0x08d1 0000327b: JUMP 0000327c: JUMPDEST 0000327d: SWAP3 0000327e: POP 0000327f: POP 00003280: DUP2 00003281: SWAP1 00003282: SSTORE 00003283: POP 00003284: DUP3 00003285: PUSH1 0x01 00003287: PUSH1 0x01 00003289: PUSH1 0xa0 0000328b: SHL 0000328c: SUB 0000328d: AND 0000328e: DUP5 0000328f: PUSH1 0x01 00003291: PUSH1 0x01 00003293: PUSH1 0xa0 00003295: SHL 00003296: SUB 00003297: AND 00003298: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000032b9: DUP5 000032ba: PUSH1 0x40 000032bc: MLOAD 000032bd: PUSH2 0x072f 000032c0: SWAP2 000032c1: DUP2 000032c2: MSTORE 000032c3: PUSH1 0x20 000032c5: ADD 000032c6: SWAP1 000032c7: JUMP 000032c8: JUMPDEST 000032c9: PUSH1 0x40 000032cb: MLOAD 000032cc: DUP1 000032cd: SWAP2 000032ce: SUB 000032cf: SWAP1 000032d0: LOG3 000032d1: POP 000032d2: POP 000032d3: POP 000032d4: POP 000032d5: JUMP 000032d6: JUMPDEST 000032d7: PUSH1 0x00 000032d9: PUSH1 0x20 000032db: DUP1 000032dc: DUP4 000032dd: MSTORE 000032de: DUP4 000032df: MLOAD 000032e0: DUP1 000032e1: DUP3 000032e2: DUP6 000032e3: ADD 000032e4: MSTORE 000032e5: PUSH1 0x00 000032e7: JUMPDEST 000032e8: DUP2 000032e9: DUP2 000032ea: LT 000032eb: ISZERO 000032ec: PUSH2 0x076a 000032ef: JUMPI 000032f0: DUP6 000032f1: DUP2 000032f2: ADD 000032f3: DUP4 000032f4: ADD 000032f5: MLOAD 000032f6: DUP6 000032f7: DUP3 000032f8: ADD 000032f9: PUSH1 0x40 000032fb: ADD 000032fc: MSTORE 000032fd: DUP3 000032fe: ADD 000032ff: PUSH2 0x074e 00003302: JUMP 00003303: JUMPDEST 00003304: DUP2 00003305: DUP2 00003306: GT 00003307: ISZERO 00003308: PUSH2 0x077c 0000330b: JUMPI 0000330c: PUSH1 0x00 0000330e: PUSH1 0x40 00003310: DUP4 00003311: DUP8 00003312: ADD 00003313: ADD 00003314: MSTORE 00003315: JUMPDEST 00003316: POP 00003317: PUSH1 0x1f 00003319: ADD 0000331a: PUSH1 0x1f 0000331c: NOT 0000331d: AND 0000331e: SWAP3 0000331f: SWAP1 00003320: SWAP3 00003321: ADD 00003322: PUSH1 0x40 00003324: ADD 00003325: SWAP4 00003326: SWAP3 00003327: POP 00003328: POP 00003329: POP 0000332a: JUMP 0000332b: JUMPDEST 0000332c: DUP1 0000332d: CALLDATALOAD 0000332e: PUSH1 0x01 00003330: PUSH1 0x01 00003332: PUSH1 0xa0 00003334: SHL 00003335: SUB 00003336: DUP2 00003337: AND 00003338: DUP2 00003339: EQ 0000333a: PUSH2 0x07a9 0000333d: JUMPI 0000333e: PUSH1 0x00 00003340: DUP1 00003341: REVERT 00003342: JUMPDEST 00003343: SWAP2 00003344: SWAP1 00003345: POP 00003346: JUMP 00003347: JUMPDEST 00003348: PUSH1 0x00 0000334a: DUP1 0000334b: PUSH1 0x40 0000334d: DUP4 0000334e: DUP6 0000334f: SUB 00003350: SLT 00003351: ISZERO 00003352: PUSH2 0x07c1 00003355: JUMPI 00003356: PUSH1 0x00 00003358: DUP1 00003359: REVERT 0000335a: JUMPDEST 0000335b: PUSH2 0x07ca 0000335e: DUP4 0000335f: PUSH2 0x0792 00003362: JUMP 00003363: JUMPDEST 00003364: SWAP5 00003365: PUSH1 0x20 00003367: SWAP4 00003368: SWAP1 00003369: SWAP4 0000336a: ADD 0000336b: CALLDATALOAD 0000336c: SWAP4 0000336d: POP 0000336e: POP 0000336f: POP 00003370: JUMP 00003371: JUMPDEST 00003372: PUSH1 0x00 00003374: DUP1 00003375: PUSH1 0x00 00003377: PUSH1 0x60 00003379: DUP5 0000337a: DUP7 0000337b: SUB 0000337c: SLT 0000337d: ISZERO 0000337e: PUSH2 0x07ed 00003381: JUMPI 00003382: PUSH1 0x00 00003384: DUP1 00003385: REVERT 00003386: JUMPDEST 00003387: PUSH2 0x07f6 0000338a: DUP5 0000338b: PUSH2 0x0792 0000338e: JUMP 0000338f: JUMPDEST 00003390: SWAP3 00003391: POP 00003392: PUSH2 0x0804 00003395: PUSH1 0x20 00003397: DUP6 00003398: ADD 00003399: PUSH2 0x0792 0000339c: JUMP 0000339d: JUMPDEST 0000339e: SWAP2 0000339f: POP 000033a0: PUSH1 0x40 000033a2: DUP5 000033a3: ADD 000033a4: CALLDATALOAD 000033a5: SWAP1 000033a6: POP 000033a7: SWAP3 000033a8: POP 000033a9: SWAP3 000033aa: POP 000033ab: SWAP3 000033ac: JUMP 000033ad: JUMPDEST 000033ae: PUSH1 0x00 000033b0: PUSH1 0x20 000033b2: DUP3 000033b3: DUP5 000033b4: SUB 000033b5: SLT 000033b6: ISZERO 000033b7: PUSH2 0x0826 000033ba: JUMPI 000033bb: PUSH1 0x00 000033bd: DUP1 000033be: REVERT 000033bf: JUMPDEST 000033c0: PUSH2 0x082f 000033c3: DUP3 000033c4: PUSH2 0x0792 000033c7: JUMP 000033c8: JUMPDEST 000033c9: SWAP4 000033ca: SWAP3 000033cb: POP 000033cc: POP 000033cd: POP 000033ce: JUMP 000033cf: JUMPDEST 000033d0: PUSH1 0x00 000033d2: DUP1 000033d3: PUSH1 0x40 000033d5: DUP4 000033d6: DUP6 000033d7: SUB 000033d8: SLT 000033d9: ISZERO 000033da: PUSH2 0x0849 000033dd: JUMPI 000033de: PUSH1 0x00 000033e0: DUP1 000033e1: REVERT 000033e2: JUMPDEST 000033e3: PUSH2 0x0852 000033e6: DUP4 000033e7: PUSH2 0x0792 000033ea: JUMP 000033eb: JUMPDEST 000033ec: SWAP2 000033ed: POP 000033ee: PUSH2 0x0860 000033f1: PUSH1 0x20 000033f3: DUP5 000033f4: ADD 000033f5: PUSH2 0x0792 000033f8: JUMP 000033f9: JUMPDEST 000033fa: SWAP1 000033fb: POP 000033fc: SWAP3 000033fd: POP 000033fe: SWAP3 000033ff: SWAP1 00003400: POP 00003401: JUMP 00003402: JUMPDEST 00003403: PUSH1 0x01 00003405: DUP2 00003406: DUP2 00003407: SHR 00003408: SWAP1 00003409: DUP3 0000340a: AND 0000340b: DUP1 0000340c: PUSH2 0x087d 0000340f: JUMPI 00003410: PUSH1 0x7f 00003412: DUP3 00003413: AND 00003414: SWAP2 00003415: POP 00003416: JUMPDEST 00003417: PUSH1 0x20 00003419: DUP3 0000341a: LT 0000341b: DUP2 0000341c: EQ 0000341d: ISZERO 0000341e: PUSH2 0x089e 00003421: JUMPI 00003422: PUSH4 0x4e487b71 00003427: PUSH1 0xe0 00003429: SHL 0000342a: PUSH1 0x00 0000342c: MSTORE 0000342d: PUSH1 0x22 0000342f: PUSH1 0x04 00003431: MSTORE 00003432: PUSH1 0x24 00003434: PUSH1 0x00 00003436: REVERT 00003437: JUMPDEST 00003438: POP 00003439: SWAP2 0000343a: SWAP1 0000343b: POP 0000343c: JUMP 0000343d: JUMPDEST 0000343e: PUSH4 0x4e487b71 00003443: PUSH1 0xe0 00003445: SHL 00003446: PUSH1 0x00 00003448: MSTORE 00003449: PUSH1 0x11 0000344b: PUSH1 0x04 0000344d: MSTORE 0000344e: PUSH1 0x24 00003450: PUSH1 0x00 00003452: REVERT 00003453: JUMPDEST 00003454: PUSH1 0x00 00003456: DUP3 00003457: DUP3 00003458: LT 00003459: ISZERO 0000345a: PUSH2 0x08cc 0000345d: JUMPI 0000345e: PUSH2 0x08cc 00003461: PUSH2 0x08a4 00003464: JUMP 00003465: JUMPDEST 00003466: POP 00003467: SUB 00003468: SWAP1 00003469: JUMP 0000346a: JUMPDEST 0000346b: PUSH1 0x00 0000346d: DUP3 0000346e: NOT 0000346f: DUP3 00003470: GT 00003471: ISZERO 00003472: PUSH2 0x08e4 00003475: JUMPI 00003476: PUSH2 0x08e4 00003479: PUSH2 0x08a4 0000347c: JUMP 0000347d: JUMPDEST 0000347e: POP 0000347f: ADD 00003480: SWAP1 00003481: JUMP 00003482: INVALID 00003483: LOG2 00003484: PUSH5 0x6970667358 0000348a: UNKNOWN(0x22) 0000348b: SLT 0000348c: KECCAK256 0000348d: ADDRESS 0000348e: LOG2 0000348f: DUP3 00003490: UNKNOWN(0xFB) 00003491: PUSH31 0x0b734096beb9323062edce33d11c6ccd7166512f1150282b9d8c8a64736f6c 000034b1: PUSH4 0x4300080a 000034b6: STOP 000034b7: CALLER 000034b8: LOG2 000034b9: PUSH5 0x6970667358 000034bf: UNKNOWN(0x22) 000034c0: SLT 000034c1: KECCAK256 000034c2: LOG3 000034c3: NUMBER 000034c4: UNKNOWN(0xE6) 000034c5: PUSH17 0x87c843940f5d01cf08cc6bb77beecfc24e 000034d7: UNKNOWN(0xE5) 000034d8: ADDMOD 000034d9: UNKNOWN(0xB7) 000034da: UNKNOWN(0xD1) 000034db: UNKNOWN(0x4C) 000034dc: UNKNOWN(0xC7) 000034dd: MSIZE 000034de: LOG0 000034df: UNKNOWN(0xD3) 000034e0: UNKNOWN(0xB1) 000034e1: SDIV 000034e2: PUSH5 0x736f6c6343 000034e8: STOP 000034e9: ADDMOD 000034ea: EXP 000034eb: STOP 000034ec: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xd049a5dbc2f7b7a82de260440a94321622294b00fb2debbee793aead67d401d8
call_targets:
0xa4108aa1ec4967f8b52220a4f7e94a8201f2d906
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd049a5dbc2f7b7a82de260440a94321622294b00fb2debbee793aead67d401d8",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xa4108aa1ec4967f8b52220a4f7e94a8201f2d906"
],
"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": "0xc9d194d5",
"selector": "0xc9d194d5",
"calldata_variants": [
"0xc9d194d5",
"0xc9d194d50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdf97174b",
"selector": "0xdf97174b",
"calldata_variants": [
"0xdf97174b",
"0xdf97174b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2b53307",
"selector": "0xf2b53307",
"calldata_variants": [
"0xf2b53307",
"0xf2b533070000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf7955637",
"selector": "0xf7955637",
"calldata_variants": [
"0xf7955637",
"0xf79556370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8690ff98",
"selector": "0x8690ff98",
"calldata_variants": [
"0x8690ff98",
"0x8690ff980000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaca6b1c1",
"selector": "0xaca6b1c1",
"calldata_variants": [
"0xaca6b1c1",
"0xaca6b1c10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb56561fe",
"selector": "0xb56561fe",
"calldata_variants": [
"0xb56561fe",
"0xb56561fe0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbdda81d4",
"selector": "0xbdda81d4",
"calldata_variants": [
"0xbdda81d4",
"0xbdda81d40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5313,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [],
"untrusted_call_count": 1
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xd049a5dbc2f7b7a82de260440a94321622294b00fb2debbee793aead67d401d8
call_targets:
0xa4108aa1ec4967f8b52220a4f7e94a8201f2d906
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd049a5dbc2f7b7a82de260440a94321622294b00fb2debbee793aead67d401d8",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xa4108aa1ec4967f8b52220a4f7e94a8201f2d906"
],
"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": "0xc9d194d5",
"selector": "0xc9d194d5",
"calldata_variants": [
"0xc9d194d5",
"0xc9d194d50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdf97174b",
"selector": "0xdf97174b",
"calldata_variants": [
"0xdf97174b",
"0xdf97174b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2b53307",
"selector": "0xf2b53307",
"calldata_variants": [
"0xf2b53307",
"0xf2b533070000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf7955637",
"selector": "0xf7955637",
"calldata_variants": [
"0xf7955637",
"0xf79556370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8690ff98",
"selector": "0x8690ff98",
"calldata_variants": [
"0x8690ff98",
"0x8690ff980000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaca6b1c1",
"selector": "0xaca6b1c1",
"calldata_variants": [
"0xaca6b1c1",
"0xaca6b1c10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb56561fe",
"selector": "0xb56561fe",
"calldata_variants": [
"0xb56561fe",
"0xb56561fe0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbdda81d4",
"selector": "0xbdda81d4",
"calldata_variants": [
"0xbdda81d4",
"0xbdda81d40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5313,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": []
}
|
| medium | auth | codex | Signatures are not domain-separated by contract address or chain ID | 75 | no | — |
viewevidence_json{
"evidence": "Signed payloads and checkpoints only include `state_gravityId` as the domain separator; contract address/chain ID are not included.",
"locations": [
"contracts/contracts/Gravity.sol:183",
"contracts/contracts/Gravity.sol:402",
"contracts/contracts/Gravity.sol:495"
],
"recommendation": "Include domain separation in all signed hashes by incorporating `address(this)` and/or `block.chainid` (and enforce unique gravityId on deployment). This prevents cross-deployment or cross-chain signature replay even if gravityId is misconfigured.",
"exploit_scenario": "If the same gravityId is reused across multiple Gravity deployments (or chains), any signed batch/logic-call/valset update from one deployment can be replayed on another. An attacker can submit previously valid signatures to execute withdrawals on the other contract, draining its balances."
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x7b5f682fa8b320f804888a174013f2a6901de2159dbb7d1ee29bbb7b7dd980fd
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x7b5f682fa8b320f804888a174013f2a6901de2159dbb7d1ee29bbb7b7dd980fd",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xc9d194d5",
"selector": "0xc9d194d5",
"calldata_variants": [
"0xc9d194d5",
"0xc9d194d50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdf97174b",
"selector": "0xdf97174b",
"calldata_variants": [
"0xdf97174b",
"0xdf97174b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2b53307",
"selector": "0xf2b53307",
"calldata_variants": [
"0xf2b53307",
"0xf2b533070000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf7955637",
"selector": "0xf7955637",
"calldata_variants": [
"0xf7955637",
"0xf79556370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8690ff98",
"selector": "0x8690ff98",
"calldata_variants": [
"0x8690ff98",
"0x8690ff980000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaca6b1c1",
"selector": "0xaca6b1c1",
"calldata_variants": [
"0xaca6b1c1",
"0xaca6b1c10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb56561fe",
"selector": "0xb56561fe",
"calldata_variants": [
"0xb56561fe",
"0xb56561fe0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbdda81d4",
"selector": "0xbdda81d4",
"calldata_variants": [
"0xbdda81d4",
"0xbdda81d40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| low | auth | codex | Validator address uniqueness is not enforced in valsets | 65 | no | — |
viewevidence_json{
"evidence": "`validateValset` only checks array lengths; `checkValidatorSignatures` counts power per entry and does not prevent duplicate signer addresses or reused signatures.",
"locations": [
"contracts/contracts/Gravity.sol:165",
"contracts/contracts/Gravity.sol:217"
],
"recommendation": "Validate that `_valset.validators` contains unique addresses when initializing and updating the validator set (and consider enforcing sorted powers to match assumptions).",
"exploit_scenario": "If a valset is created with duplicate validator addresses (accidentally or via operator error), a single validator can reuse its signature for each duplicate entry and have its power counted multiple times. This reduces the effective number of distinct signers required to reach the threshold and can enable unauthorized batch/valset execution."
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|