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

Analysis Run

019bb50b-e18c-7289-a46a-78f23643b5ab

complete
Chain ID
1
Address
Block Number
Created
Tue, Jan 13, 2026 1:50 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
40408 artifact.fetch complete 1 / 3 3 months ago
40409 proxy.resolve complete 1 / 3 3 months ago
40410 tool.cast_disasm complete 1 / 3 3 months ago
40411 analysis.bundle complete 1 / 3 3 months ago
40412 capability.graph complete 1 / 3 3 months ago
40413 detector.run complete 1 / 3 3 months ago
40414 validation.fork complete 1 / 3 3 months ago
40498 report.consolidate complete 1 / 6 3 months ago
40499 tool.slither complete 1 / 2 3 months ago

Artifact

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

Slither

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

NashSavingsLedgerAave.calcPrincipalAmounts(uint256[5]).out (contracts/NashSavingsLedgerAave.sol#347) is a local variable never initialized
NashSavingsLedgerAave.balanceOf(address).out (contracts/NashSavingsLedgerAave.sol#273) is a local variable never initialized
NashSavingsLedgerAave.balanceOf(address).userData (contracts/NashSavingsLedgerAave.sol#281) is a local variable never initialized
NashSavingsLedgerAave.withdraw(uint256[5]).user (contracts/NashSavingsLedgerAave.sol#292) is a local variable never initialized
NashSavingsLedgerAave.updateBalances(BalanceUpdate[]).user (contracts/NashSavingsLedgerAave.sol#220) is a local variable never initialized
NashSavingsLedgerAave.calcAmounts(uint256[5]).out (contracts/NashSavingsLedgerAave.sol#357) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables

NashSavingsLedgerAave.deposit() (contracts/NashSavingsLedgerAave.sol#197-211) ignores return value by utok.approve(address(pools[i]),amount) (contracts/NashSavingsLedgerAave.sol#208)
NashSavingsLedgerAave.withdraw(uint256[5]) (contracts/NashSavingsLedgerAave.sol#291-323) ignores return value by pools[i_scope_0].withdraw(address(underlyingTokens[i_scope_0]),scaleAmount(applyFee(amounts[i_scope_0],manualWithdrawalFee),ledgerBalanceScale,tokens[i_scope_0].decimals()),msg.sender) (contracts/NashSavingsLedgerAave.sol#316-320)
NashSavingsLedgerAave.withdrawNash(uint256[5]) (contracts/NashSavingsLedgerAave.sol#325-343) ignores return value by pools[i].withdraw(address(underlyingTokens[i]),scaleAmount(amounts[i],ledgerBalanceScale,tokens[i].decimals()),msg.sender) (contracts/NashSavingsLedgerAave.sol#337-341)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return

IncentivizedERC20.constructor(string,string,uint8).name (contracts/protocol/tokenization/IncentivizedERC20.sol#27) shadows:
	- IncentivizedERC20.name() (contracts/protocol/tokenization/IncentivizedERC20.sol#39-41) (function)
	- IERC20Detailed.name() (contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol#7) (function)
IncentivizedERC20.constructor(string,string,uint8).symbol (contracts/protocol/tokenization/IncentivizedERC20.sol#28) shadows:
	- IncentivizedERC20.symbol() (contracts/protocol/tokenization/IncentivizedERC20.sol#46-48) (function)
	- IERC20Detailed.symbol() (contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol#9) (function)
IncentivizedERC20.constructor(string,string,uint8).decimals (contracts/protocol/tokenization/IncentivizedERC20.sol#29) shadows:
	- IncentivizedERC20.decimals() (contracts/protocol/tokenization/IncentivizedERC20.sol#53-55) (function)
	- IERC20Detailed.decimals() (contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol#11) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing

NashSavingsLedgerAave.setFee(uint256) (contracts/NashSavingsLedgerAave.sol#212-214) should emit an event for: 
	- manualWithdrawalFee = newFee (contracts/NashSavingsLedgerAave.sol#213) 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-events-arithmetic

AToken.initialize(ILendingPool,address,address,IAaveIncentivesController,uint8,string,string,bytes).treasury (contracts/protocol/tokenization/AToken.sol#66) lacks a zero-check on :
		- _treasury = treasury (contracts/protocol/tokenization/AToken.sol#96)
AToken.initialize(ILendingPool,address,address,IAaveIncentivesController,uint8,string,string,bytes).underlyingAsset (contracts/protocol/tokenization/AToken.sol#67) lacks a zero-check on :
		- _underlyingAsset = underlyingAsset (contracts/protocol/tokenization/AToken.sol#97)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation

NashSavingsLedgerAave.constructor(AToken,AToken,AToken,AToken,AToken,IAaveIncentivesController) (contracts/NashSavingsLedgerAave.sol#63-82) has external calls inside a loop: underlyingTokens[i] = IERC20(tokens[i].UNDERLYING_ASSET_ADDRESS()) (contracts/NashSavingsLedgerAave.sol#79)
NashSavingsLedgerAave.constructor(AToken,AToken,AToken,AToken,AToken,IAaveIncentivesController) (contracts/NashSavingsLedgerAave.sol#63-82) has external calls inside a loop: pools[i] = tokens[i].POOL() (contracts/NashSavingsLedgerAave.sol#80)
NashSavingsLedgerAave.updatePoolsAndTokens() (contracts/NashSavingsLedgerAave.sol#84-89) has external calls inside a loop: underlyingTokens[i] = IERC20(tokens[i].UNDERLYING_ASSET_ADDRESS()) (contracts/NashSavingsLedgerAave.sol#86)
NashSavingsLedgerAave.updatePoolsAndTokens() (contracts/NashSavingsLedgerAave.sol#84-89) has external calls inside a loop: pools[i] = tokens[i].POOL() (contracts/NashSavingsLedgerAave.sol#87)
NashSavingsLedgerAave.deposit() (contracts/NashSavingsLedgerAave.sol#197-211) has external calls inside a loop: amount = utok.balanceOf(address(this)) (contracts/NashSavingsLedgerAave.sol#200)
NashSavingsLedgerAave.deposit() (contracts/NashSavingsLedgerAave.sol#197-211) has external calls inside a loop: utok.approve(address(pools[i]),amount) (contracts/NashSavingsLedgerAave.sol#208)
NashSavingsLedgerAave.deposit() (contracts/NashSavingsLedgerAave.sol#197-211) has external calls inside a loop: pools[i].deposit(address(utok),amount,address(this),0) (contracts/NashSavingsLedgerAave.sol#209)
NashSavingsLedgerAave.principalBalance(uint256) (contracts/NashSavingsLedgerAave.sol#258-264) has external calls inside a loop: scaleAmount(tokens[tok].scaledBalanceOf(address(this)),tokens[tok].decimals(),ledgerBalanceScale) (contracts/NashSavingsLedgerAave.sol#259-263)
	Calls stack containing the loop:
		NashSavingsLedgerAave.updateBalances(BalanceUpdate[])
NashSavingsLedgerAave.principalBalance(uint256) (contracts/NashSavingsLedgerAave.sol#258-264) has external calls inside a loop: scaleAmount(tokens[tok].scaledBalanceOf(address(this)),tokens[tok].decimals(),ledgerBalanceScale) (contracts/NashSavingsLedgerAave.sol#259-263)
	Calls stack containing the loop:
		NashSavingsLedgerAave.balanceOf(address)
NashSavingsLedgerAave.getCurrentLiquidityIndex(uint256) (contracts/NashSavingsLedgerAave.sol#266-270) has external calls inside a loop: pools[tok].getReserveNormalizedIncome(address(underlyingTokens[tok])) (contracts/NashSavingsLedgerAave.sol#267-269)
	Calls stack containing the loop:
		NashSavingsLedgerAave.balanceOf(address)
NashSavingsLedgerAave.getCurrentLiquidityIndex(uint256) (contracts/NashSavingsLedgerAave.sol#266-270) has external calls inside a loop: pools[tok].getReserveNormalizedIncome(address(underlyingTokens[tok])) (contracts/NashSavingsLedgerAave.sol#267-269)
	Calls stack containing the loop:
		NashSavingsLedgerAave.withdraw(uint256[5])
NashSavingsLedgerAave.withdraw(uint256[5]) (contracts/NashSavingsLedgerAave.sol#291-323) has external calls inside a loop: pools[i_scope_0].withdraw(address(underlyingTokens[i_scope_0]),scaleAmount(applyFee(amounts[i_scope_0],manualWithdrawalFee),ledgerBalanceScale,tokens[i_scope_0].decimals()),msg.sender) (contracts/NashSavingsLedgerAave.sol#316-320)
NashSavingsLedgerAave.getCurrentLiquidityIndex(uint256) (contracts/NashSavingsLedgerAave.sol#266-270) has external calls inside a loop: pools[tok].getReserveNormalizedIncome(address(underlyingTokens[tok])) (contracts/NashSavingsLedgerAave.sol#267-269)
	Calls stack containing the loop:
		NashSavingsLedgerAave.withdrawNash(uint256[5])
NashSavingsLedgerAave.principalBalance(uint256) (contracts/NashSavingsLedgerAave.sol#258-264) has external calls inside a loop: scaleAmount(tokens[tok].scaledBalanceOf(address(this)),tokens[tok].decimals(),ledgerBalanceScale) (contracts/NashSavingsLedgerAave.sol#259-263)
	Calls stack containing the loop:
		NashSavingsLedgerAave.withdrawNash(uint256[5])
NashSavingsLedgerAave.withdrawNash(uint256[5]) (contracts/NashSavingsLedgerAave.sol#325-343) has external calls inside a loop: pools[i].withdraw(address(underlyingTokens[i]),scaleAmount(amounts[i],ledgerBalanceScale,tokens[i].decimals()),msg.sender) (contracts/NashSavingsLedgerAave.sol#337-341)
NashSavingsLedgerAave.getCurrentLiquidityIndex(uint256) (contracts/NashSavingsLedgerAave.sol#266-270) has external calls inside a loop: pools[tok].getReserveNormalizedIncome(address(underlyingTokens[tok])) (contracts/NashSavingsLedgerAave.sol#267-269)
	Calls stack containing the loop:
		NashSavingsLedgerAave.calcPrincipalAmounts(uint256[5])
NashSavingsLedgerAave.getCurrentLiquidityIndex(uint256) (contracts/NashSavingsLedgerAave.sol#266-270) has external calls inside a loop: pools[tok].getReserveNormalizedIncome(address(underlyingTokens[tok])) (contracts/NashSavingsLedgerAave.sol#267-269)
	Calls stack containing the loop:
		NashSavingsLedgerAave.calcAmounts(uint256[5])
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop

Reentrancy in IncentivizedERC20.transferFrom(address,address,uint256) (contracts/protocol/tokenization/IncentivizedERC20.sol#122-135):
	External calls:
	- _transfer(sender,recipient,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#127)
		- _getIncentivesController().handleAction(sender,currentTotalSupply,oldSenderBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#187)
		- _getIncentivesController().handleAction(recipient,currentTotalSupply,oldRecipientBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#189)
	State variables written after the call(s):
	- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (contracts/protocol/tokenization/IncentivizedERC20.sol#128-132)
		- _allowances[owner][spender] = amount (contracts/protocol/tokenization/IncentivizedERC20.sol#234)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2

Reentrancy in AToken._transfer(address,address,uint256,bool) (contracts/protocol/tokenization/AToken.sol#370-391):
	External calls:
	- super._transfer(from,to,amount.rayDiv(index)) (contracts/protocol/tokenization/AToken.sol#384)
		- _getIncentivesController().handleAction(sender,currentTotalSupply,oldSenderBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#187)
		- _getIncentivesController().handleAction(recipient,currentTotalSupply,oldRecipientBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#189)
	- pool.finalizeTransfer(underlyingAsset,from,to,amount,fromBalanceBefore,toBalanceBefore) (contracts/protocol/tokenization/AToken.sol#387)
	Event emitted after the call(s):
	- BalanceTransfer(from,to,amount,index) (contracts/protocol/tokenization/AToken.sol#390)
Reentrancy in AToken.burn(address,address,uint256,uint256) (contracts/protocol/tokenization/AToken.sol#120-134):
	External calls:
	- _burn(user,amountScaled) (contracts/protocol/tokenization/AToken.sol#128)
		- _getIncentivesController().handleAction(account,oldTotalSupply,oldAccountBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#222)
	- IERC20(_underlyingAsset).safeTransfer(receiverOfUnderlying,amount) (contracts/protocol/tokenization/AToken.sol#130)
	Event emitted after the call(s):
	- Burn(user,receiverOfUnderlying,amount,index) (contracts/protocol/tokenization/AToken.sol#133)
	- Transfer(user,address(0),amount) (contracts/protocol/tokenization/AToken.sol#132)
Reentrancy in AToken.mint(address,uint256,uint256) (contracts/protocol/tokenization/AToken.sol#144-159):
	External calls:
	- _mint(user,amountScaled) (contracts/protocol/tokenization/AToken.sol#153)
		- _getIncentivesController().handleAction(account,oldTotalSupply,oldAccountBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#206)
	Event emitted after the call(s):
	- Mint(user,amount,index) (contracts/protocol/tokenization/AToken.sol#156)
	- Transfer(address(0),user,amount) (contracts/protocol/tokenization/AToken.sol#155)
Reentrancy in AToken.mintToTreasury(uint256,uint256) (contracts/protocol/tokenization/AToken.sol#167-182):
	External calls:
	- _mint(treasury,amount.rayDiv(index)) (contracts/protocol/tokenization/AToken.sol#178)
		- _getIncentivesController().handleAction(account,oldTotalSupply,oldAccountBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#206)
	Event emitted after the call(s):
	- Mint(treasury,amount,index) (contracts/protocol/tokenization/AToken.sol#181)
	- Transfer(address(0),treasury,amount) (contracts/protocol/tokenization/AToken.sol#180)
Reentrancy in IncentivizedERC20.transfer(address,uint256) (contracts/protocol/tokenization/IncentivizedERC20.sol#83-87):
	External calls:
	- _transfer(_msgSender(),recipient,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#84)
		- _getIncentivesController().handleAction(sender,currentTotalSupply,oldSenderBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#187)
		- _getIncentivesController().handleAction(recipient,currentTotalSupply,oldRecipientBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#189)
	Event emitted after the call(s):
	- Transfer(_msgSender(),recipient,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#85)
Reentrancy in IncentivizedERC20.transferFrom(address,address,uint256) (contracts/protocol/tokenization/IncentivizedERC20.sol#122-135):
	External calls:
	- _transfer(sender,recipient,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#127)
		- _getIncentivesController().handleAction(sender,currentTotalSupply,oldSenderBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#187)
		- _getIncentivesController().handleAction(recipient,currentTotalSupply,oldRecipientBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#189)
	Event emitted after the call(s):
	- Approval(owner,spender,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#235)
		- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (contracts/protocol/tokenization/IncentivizedERC20.sol#128-132)
	- Transfer(sender,recipient,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#133)
Reentrancy in AToken.transferOnLiquidation(address,address,uint256) (contracts/protocol/tokenization/AToken.sol#191-201):
	External calls:
	- _transfer(from,to,value,false) (contracts/protocol/tokenization/AToken.sol#198)
		- pool.finalizeTransfer(underlyingAsset,from,to,amount,fromBalanceBefore,toBalanceBefore) (contracts/protocol/tokenization/AToken.sol#387)
		- _getIncentivesController().handleAction(sender,currentTotalSupply,oldSenderBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#187)
		- _getIncentivesController().handleAction(recipient,currentTotalSupply,oldRecipientBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#189)
	Event emitted after the call(s):
	- Transfer(from,to,value) (contracts/protocol/tokenization/AToken.sol#200)
Reentrancy in NashSavingsLedgerAave.withdraw(uint256[5]) (contracts/NashSavingsLedgerAave.sol#291-323):
	External calls:
	- pools[i_scope_0].withdraw(address(underlyingTokens[i_scope_0]),scaleAmount(applyFee(amounts[i_scope_0],manualWithdrawalFee),ledgerBalanceScale,tokens[i_scope_0].decimals()),msg.sender) (contracts/NashSavingsLedgerAave.sol#316-320)
	Event emitted after the call(s):
	- ManualWithdrawal(msg.sender,amounts[0],amounts[1],amounts[2],amounts[3],amounts[4]) (contracts/NashSavingsLedgerAave.sol#322)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

AToken.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/protocol/tokenization/AToken.sol#336-360) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp <= deadline,INVALID_EXPIRATION) (contracts/protocol/tokenization/AToken.sol#347)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp

Address.isContract(address) (contracts/dependencies/openzeppelin/contracts/Address.sol#25-36) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/contracts/Address.sol#32-34)
VersionedInitializable.isConstructor() (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#61-73) uses assembly
	- INLINE ASM (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#69-71)
AToken.initialize(ILendingPool,address,address,IAaveIncentivesController,uint8,string,string,bytes) (contracts/protocol/tokenization/AToken.sol#64-110) uses assembly
	- INLINE ASM (contracts/protocol/tokenization/AToken.sol#77-79)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

2 different versions of Solidity are used:
	- Version constraint ^0.6.12 is used by:
		-^0.6.12 (contracts/NashSavingsLedgerAave.sol#3)
		-^0.6.12 (contracts/libraries/Ownerable.sol#1)
		-^0.6.12 (contracts/libraries/SafeMath.sol#1)
	- Version constraint 0.6.12 is used by:
		-0.6.12 (contracts/dependencies/openzeppelin/contracts/Address.sol#2)
		-0.6.12 (contracts/dependencies/openzeppelin/contracts/Context.sol#2)
		-0.6.12 (contracts/dependencies/openzeppelin/contracts/IERC20.sol#2)
		-0.6.12 (contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol#2)
		-0.6.12 (contracts/dependencies/openzeppelin/contracts/SafeERC20.sol#3)
		-0.6.12 (contracts/dependencies/openzeppelin/contracts/SafeMath.sol#2)
		-0.6.12 (contracts/interfaces/IAToken.sol#2)
		-0.6.12 (contracts/interfaces/IAaveIncentivesController.sol#2)
		-0.6.12 (contracts/interfaces/IInitializableAToken.sol#2)
		-0.6.12 (contracts/interfaces/ILendingPool.sol#2)
		-0.6.12 (contracts/interfaces/ILendingPoolAddressesProvider.sol#2)
		-0.6.12 (contracts/interfaces/IScaledBalanceToken.sol#2)
		-0.6.12 (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#2)
		-0.6.12 (contracts/protocol/libraries/helpers/Errors.sol#2)
		-0.6.12 (contracts/protocol/libraries/math/WadRayMath.sol#2)
		-0.6.12 (contracts/protocol/libraries/types/DataTypes.sol#2)
		-0.6.12 (contracts/protocol/tokenization/AToken.sol#2)
		-0.6.12 (contracts/protocol/tokenization/IncentivizedERC20.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

Context._msgData() (contracts/dependencies/openzeppelin/contracts/Context.sol#19-22) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code

Version constraint ^0.6.12 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup.
It is used by:
	- ^0.6.12 (contracts/NashSavingsLedgerAave.sol#3)
	- ^0.6.12 (contracts/libraries/Ownerable.sol#1)
	- ^0.6.12 (contracts/libraries/SafeMath.sol#1)
Version constraint 0.6.12 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup.
It is used by:
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/Address.sol#2)
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/Context.sol#2)
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/IERC20.sol#2)
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol#2)
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/SafeERC20.sol#3)
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/SafeMath.sol#2)
	- 0.6.12 (contracts/interfaces/IAToken.sol#2)
	- 0.6.12 (contracts/interfaces/IAaveIncentivesController.sol#2)
	- 0.6.12 (contracts/interfaces/IInitializableAToken.sol#2)
	- 0.6.12 (contracts/interfaces/ILendingPool.sol#2)
	- 0.6.12 (contracts/interfaces/ILendingPoolAddressesProvider.sol#2)
	- 0.6.12 (contracts/interfaces/IScaledBalanceToken.sol#2)
	- 0.6.12 (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#2)
	- 0.6.12 (contracts/protocol/libraries/helpers/Errors.sol#2)
	- 0.6.12 (contracts/protocol/libraries/math/WadRayMath.sol#2)
	- 0.6.12 (contracts/protocol/libraries/types/DataTypes.sol#2)
	- 0.6.12 (contracts/protocol/tokenization/AToken.sol#2)
	- 0.6.12 (contracts/protocol/tokenization/IncentivizedERC20.sol#2)
solc-0.6.12 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in Address.sendValue(address,uint256) (contracts/dependencies/openzeppelin/contracts/Address.sol#54-60):
	- (success,None) = recipient.call{value: amount}() (contracts/dependencies/openzeppelin/contracts/Address.sol#58)
Low level call in SafeERC20.callOptionalReturn(IERC20,bytes) (contracts/dependencies/openzeppelin/contracts/SafeERC20.sol#51-63):
	- (success,returndata) = address(token).call(data) (contracts/dependencies/openzeppelin/contracts/SafeERC20.sol#55)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

Function IAToken.UNDERLYING_ASSET_ADDRESS() (contracts/interfaces/IAToken.sol#106) is not in mixedCase
Function IAaveIncentivesController.REWARD_TOKEN() (contracts/interfaces/IAaveIncentivesController.sol#122) is not in mixedCase
Function IAaveIncentivesController.PRECISION() (contracts/interfaces/IAaveIncentivesController.sol#127) is not in mixedCase
Variable VersionedInitializable.______gap (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#76) is not in mixedCase
Constant WadRayMath.halfWAD (contracts/protocol/libraries/math/WadRayMath.sol#14) is not in UPPER_CASE_WITH_UNDERSCORES
Constant WadRayMath.halfRAY (contracts/protocol/libraries/math/WadRayMath.sol#17) is not in UPPER_CASE_WITH_UNDERSCORES
Function AToken.RESERVE_TREASURY_ADDRESS() (contracts/protocol/tokenization/AToken.sol#269-271) is not in mixedCase
Function AToken.UNDERLYING_ASSET_ADDRESS() (contracts/protocol/tokenization/AToken.sol#276-278) is not in mixedCase
Function AToken.POOL() (contracts/protocol/tokenization/AToken.sol#283-285) is not in mixedCase
Variable AToken._nonces (contracts/protocol/tokenization/AToken.sol#36) is not in mixedCase
Variable AToken.DOMAIN_SEPARATOR (contracts/protocol/tokenization/AToken.sol#38) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

Redundant expression "this (contracts/dependencies/openzeppelin/contracts/Context.sol#20)" inContext (contracts/dependencies/openzeppelin/contracts/Context.sol#14-23)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements

Loop condition i < tokens.length (contracts/NashSavingsLedgerAave.sol#276) should use cached array length instead of referencing `length` member of the storage array.
 Loop condition i_scope_0 < tokens.length (contracts/NashSavingsLedgerAave.sol#283) should use cached array length instead of referencing `length` member of the storage array.
 Loop condition i < tokens.length (contracts/NashSavingsLedgerAave.sol#348) should use cached array length instead of referencing `length` member of the storage array.
 Loop condition i < tokens.length (contracts/NashSavingsLedgerAave.sol#358) should use cached array length instead of referencing `length` member of the storage array.
 Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#cache-array-length

NashSavingsLedgerAave.incentivesController (contracts/NashSavingsLedgerAave.sol#44) should be immutable 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-immutable
. analyzed (21 contracts with 100 detectors), 69 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.6.12",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.6.12",
        "install_stderr": null,
        "install_stdout": "Version '0.6.12' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-umfrr9w6 --allow-paths /tmp/slither-umfrr9w6,/tmp/slither-umfrr9w6/lib,/tmp/slither-umfrr9w6/src",
    "remappings": [],
    "source_files": [
        "contracts/NashSavingsLedgerAave.sol",
        "contracts/protocol/tokenization/AToken.sol",
        "contracts/interfaces/ILendingPool.sol",
        "contracts/interfaces/IAaveIncentivesController.sol",
        "contracts/protocol/libraries/math/WadRayMath.sol",
        "contracts/libraries/SafeMath.sol",
        "contracts/libraries/Ownerable.sol",
        "contracts/dependencies/openzeppelin/contracts/IERC20.sol",
        "contracts/dependencies/openzeppelin/contracts/SafeERC20.sol",
        "contracts/interfaces/IAToken.sol",
        "contracts/protocol/libraries/helpers/Errors.sol",
        "contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol",
        "contracts/protocol/tokenization/IncentivizedERC20.sol",
        "contracts/dependencies/openzeppelin/contracts/SafeMath.sol",
        "contracts/dependencies/openzeppelin/contracts/Address.sol",
        "contracts/interfaces/ILendingPoolAddressesProvider.sol",
        "contracts/protocol/libraries/types/DataTypes.sol",
        "contracts/interfaces/IScaledBalanceToken.sol",
        "contracts/interfaces/IInitializableAToken.sol",
        "contracts/dependencies/openzeppelin/contracts/Context.sol",
        "contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 69,
    "workspace_hash": "9b16b3f46bef3e69625c25fd2c1275fa4ecf910cd7ae10152cd82c089f478773",
    "duration_seconds": 1.6061770915985107,
    "solc_version_requested": "0.6.12"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Found two low-severity issues: balance-update signatures are replayable across contracts/chains, and the withdrawal fee lacks an upper bound causing underflow/DoS risk.
View stdout
{"no_findings":false,"summary":"Found two low-severity issues: balance-update signatures are replayable across contracts/chains, and the withdrawal fee lacks an upper bound causing underflow/DoS risk.","findings":[{"severity":"low","category":"auth","title":"Balance update signatures lack domain separation (replay across contracts/chains)","exploit_scenario":"A user signs an offchain balance update for one deployment. Because the signed message only includes deltas and nonce, the same signature can be replayed on another deployment or chain with the same nonce, allowing a privileged updater to apply unintended negative deltas there.","recommendation":"Bind signatures to the contract and chain (e.g., EIP-712 typed data including contract address, chainId, user address, and nonce). Consider using a full-width uint256 nonce to avoid wrap-around reuse.","evidence":"verifyProof/getMessage hash only `deltas` and `userNonce` with no contract/chain binding.","locations":["contracts/NashSavingsLedgerAave.sol:161","contracts/NashSavingsLedgerAave.sol:366"]},{"severity":"low","category":"math","title":"Manual withdrawal fee is unchecked and can underflow","exploit_scenario":"If the owner sets `manualWithdrawalFee` above 10000, `applyFee` underflows and produces a huge withdrawal amount, likely causing withdrawals to revert and effectively DoSing user withdrawals.","recommendation":"Validate `newFee <= 10000` in `setFee` and use SafeMath or explicit bounds checks in `applyFee`.","evidence":"`applyFee` computes `(10000 - fee)` without bounds checks; `setFee` allows any value and `withdraw` uses `applyFee`.","locations":["contracts/NashSavingsLedgerAave.sol:154","contracts/NashSavingsLedgerAave.sol:212","contracts/NashSavingsLedgerAave.sol:318"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-f28cogl2
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb538-213c-7420-8183-fd4ad710027e
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

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

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

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Auditing files using cat**
exec
/bin/bash -lc 'cat /tmp/codex-f28cogl2/AUDIT_BUNDLE.txt' in /tmp/codex-f28cogl2 succeeded in 6ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/NashSavingsLedgerAave.sol
================================================================================
//SPDX-License-Identifier: Unlicense

pragma solidity ^0.6.12;

pragma experimental ABIEncoderV2;
import "./protocol/tokenization/AToken.sol";
import "./interfaces/ILendingPool.sol";
import "./interfaces/IAaveIncentivesController.sol";
import "./protocol/libraries/math/WadRayMath.sol";
import "./libraries/SafeMath.sol";
import "./libraries/Ownerable.sol";
struct BalanceUpdate {
  int[5] deltas;



thinking
**Analyzing smart contract security risks**

I’m carefully reviewing the NashSavingsLedgerAave.sol contract for vulnerabilities like reentrancy, unchecked return values, signature replay, and fee underflows. There’s interesting complexity around owner privileges, signature verification without chain binding, potential withdrawal fee misconfiguration causing underflows, and subtle rounding issues that might affect fund accounting. I’m weighing how severe these risks are given the contract’s design and access controls.
thinking
**Examining edge cases and numeric precision**

I’m unpacking subtle rounding effects in principal calculations, allowance handling quirks with token approvals, and edge cases around signed integer conversions that arise in balance updates. The interplay between liquidity indices, fees, and scaling factors could allow minor imbalances or miscalculations, but they seem more like precision nuances than direct exploits.
exec
/bin/bash -lc 'rg -n "applyFee|setFee" /tmp/codex-f28cogl2/AUDIT_BUNDLE.txt' in /tmp/codex-f28cogl2 succeeded in 38ms:
160:  function applyFee(uint amount, uint fee) internal pure returns (uint) {
218:  function setFee(uint newFee) external onlyOwner {
324:        scaleAmount(applyFee(amounts[i], manualWithdrawalFee), ledgerBalanceScale, tokens[i].decimals()),

thinking
**Checking line numbers in source file**
exec
/bin/bash -lc 'rg -n "applyFee|setFee|verifyProof|getMessage" /tmp/codex-f28cogl2/contracts/NashSavingsLedgerAave.sol' in /tmp/codex-f28cogl2 succeeded in 14ms:
154:  function applyFee(uint amount, uint fee) internal pure returns (uint) {
161:  function verifyProof(BalanceUpdate memory update, uint userNonce) internal pure {
212:  function setFee(uint newFee) external onlyOwner {
225:      verifyProof(update, user[0]);
318:        scaleAmount(applyFee(amounts[i], manualWithdrawalFee), ledgerBalanceScale, tokens[i].decimals()),
366:  function getMessage(address user, int[5] calldata deltas) external view returns (bytes32) {

thinking
**Preparing security audit findings**
codex
{"no_findings":false,"summary":"Found two low-severity issues: balance-update signatures are replayable across contracts/chains, and the withdrawal fee lacks an upper bound causing underflow/DoS risk.","findings":[{"severity":"low","category":"auth","title":"Balance update signatures lack domain separation (replay across contracts/chains)","exploit_scenario":"A user signs an offchain balance update for one deployment. Because the signed message only includes deltas and nonce, the same signature can be replayed on another deployment or chain with the same nonce, allowing a privileged updater to apply unintended negative deltas there.","recommendation":"Bind signatures to the contract and chain (e.g., EIP-712 typed data including contract address, chainId, user address, and nonce). Consider using a full-width uint256 nonce to avoid wrap-around reuse.","evidence":"verifyProof/getMessage hash only `deltas` and `userNonce` with no contract/chain binding.","locations":["contracts/NashSavingsLedgerAave.sol:161","contracts/NashSavingsLedgerAave.sol:366"]},{"severity":"low","category":"math","title":"Manual withdrawal fee is unchecked and can underflow","exploit_scenario":"If the owner sets `manualWithdrawalFee` above 10000, `applyFee` underflows and produces a huge withdrawal amount, likely causing withdrawals to revert and effectively DoSing user withdrawals.","recommendation":"Validate `newFee <= 10000` in `setFee` and use SafeMath or explicit bounds checks in `applyFee`.","evidence":"`applyFee` computes `(10000 - fee)` without bounds checks; `setFee` allows any value and `withdraw` uses `applyFee`.","locations":["contracts/NashSavingsLedgerAave.sol:154","contracts/NashSavingsLedgerAave.sol:212","contracts/NashSavingsLedgerAave.sol:318"]}]}
tokens used
27,821
Metadata
{
    "codex": {
        "ran_at": "2026-01-13T02:41:27.346395+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 21,
        "import_count": 29,
        "first_party_contracts_count": 21
    },
    "summary": "Found two low-severity issues: balance-update signatures are replayable across contracts/chains, and the withdrawal fee lacks an upper bound causing underflow/DoS risk.",
    "raw_final": {
        "summary": "Found two low-severity issues: balance-update signatures are replayable across contracts/chains, and the withdrawal fee lacks an upper bound causing underflow/DoS risk.",
        "findings": [
            {
                "title": "Balance update signatures lack domain separation (replay across contracts/chains)",
                "category": "auth",
                "evidence": "verifyProof/getMessage hash only `deltas` and `userNonce` with no contract/chain binding.",
                "severity": "low",
                "locations": [
                    "contracts/NashSavingsLedgerAave.sol:161",
                    "contracts/NashSavingsLedgerAave.sol:366"
                ],
                "recommendation": "Bind signatures to the contract and chain (e.g., EIP-712 typed data including contract address, chainId, user address, and nonce). Consider using a full-width uint256 nonce to avoid wrap-around reuse.",
                "exploit_scenario": "A user signs an offchain balance update for one deployment. Because the signed message only includes deltas and nonce, the same signature can be replayed on another deployment or chain with the same nonce, allowing a privileged updater to apply unintended negative deltas there."
            },
            {
                "title": "Manual withdrawal fee is unchecked and can underflow",
                "category": "math",
                "evidence": "`applyFee` computes `(10000 - fee)` without bounds checks; `setFee` allows any value and `withdraw` uses `applyFee`.",
                "severity": "low",
                "locations": [
                    "contracts/NashSavingsLedgerAave.sol:154",
                    "contracts/NashSavingsLedgerAave.sol:212",
                    "contracts/NashSavingsLedgerAave.sol:318"
                ],
                "recommendation": "Validate `newFee <= 10000` in `setFee` and use SafeMath or explicit bounds checks in `applyFee`.",
                "exploit_scenario": "If the owner sets `manualWithdrawalFee` above 10000, `applyFee` underflows and produces a huge withdrawal amount, likely causing withdrawals to revert and effectively DoSing user withdrawals."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
13
EXT*/BALANCE
12
Total opcodes
5355
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x0177
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x830e5d6d
00000026: GT
00000027: PUSH2 0x00d8
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xb38dfbcd
00000031: GT
00000032: PUSH2 0x008c
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xd5eecedd
0000003c: GT
0000003d: PUSH2 0x0066
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xd5eecedd
00000047: EQ
00000048: PUSH2 0x02ac
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xf2fde38b
00000052: EQ
00000053: PUSH2 0x02bf
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xfebcc2bd
0000005d: EQ
0000005e: PUSH2 0x02d2
00000061: JUMPI
00000062: PUSH2 0x0177
00000065: JUMP
00000066: JUMPDEST
00000067: DUP1
00000068: PUSH4 0xb38dfbcd
0000006d: EQ
0000006e: PUSH2 0x0289
00000071: JUMPI
00000072: DUP1
00000073: PUSH4 0xbf220914
00000078: EQ
00000079: PUSH2 0x029c
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0xd0e30db0
00000083: EQ
00000084: PUSH2 0x02a4
00000087: JUMPI
00000088: PUSH2 0x0177
0000008b: JUMP
0000008c: JUMPDEST
0000008d: DUP1
0000008e: PUSH4 0xa3bf224b
00000093: GT
00000094: PUSH2 0x00bd
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xa3bf224b
0000009e: EQ
0000009f: PUSH2 0x025b
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0xac4afa38
000000a9: EQ
000000aa: PUSH2 0x026e
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0xaf1df255
000000b4: EQ
000000b5: PUSH2 0x0281
000000b8: JUMPI
000000b9: PUSH2 0x0177
000000bc: JUMP
000000bd: JUMPDEST
000000be: DUP1
000000bf: PUSH4 0x830e5d6d
000000c4: EQ
000000c5: PUSH2 0x024b
000000c8: JUMPI
000000c9: DUP1
000000ca: PUSH4 0x8da5cb5b
000000cf: EQ
000000d0: PUSH2 0x0253
000000d3: JUMPI
000000d4: PUSH2 0x0177
000000d7: JUMP
000000d8: JUMPDEST
000000d9: DUP1
000000da: PUSH4 0x5a21bba2
000000df: GT
000000e0: PUSH2 0x012f
000000e3: JUMPI
000000e4: DUP1
000000e5: PUSH4 0x69fe0e2d
000000ea: GT
000000eb: PUSH2 0x0114
000000ee: JUMPI
000000ef: DUP1
000000f0: PUSH4 0x69fe0e2d
000000f5: EQ
000000f6: PUSH2 0x021d
000000f9: JUMPI
000000fa: DUP1
000000fb: PUSH4 0x70a08231
00000100: EQ
00000101: PUSH2 0x0230
00000104: JUMPI
00000105: DUP1
00000106: PUSH4 0x715018a6
0000010b: EQ
0000010c: PUSH2 0x0243
0000010f: JUMPI
00000110: PUSH2 0x0177
00000113: JUMP
00000114: JUMPDEST
00000115: DUP1
00000116: PUSH4 0x5a21bba2
0000011b: EQ
0000011c: PUSH2 0x01f5
0000011f: JUMPI
00000120: DUP1
00000121: PUSH4 0x6834e3a8
00000126: EQ
00000127: PUSH2 0x020a
0000012a: JUMPI
0000012b: PUSH2 0x0177
0000012e: JUMP
0000012f: JUMPDEST
00000130: DUP1
00000131: PUSH4 0x4074f987
00000136: GT
00000137: PUSH2 0x0160
0000013a: JUMPI
0000013b: DUP1
0000013c: PUSH4 0x4074f987
00000141: EQ
00000142: PUSH2 0x01af
00000145: JUMPI
00000146: DUP1
00000147: PUSH4 0x44c015f5
0000014c: EQ
0000014d: PUSH2 0x01c2
00000150: JUMPI
00000151: DUP1
00000152: PUSH4 0x4f64b2be
00000157: EQ
00000158: PUSH2 0x01d5
0000015b: JUMPI
0000015c: PUSH2 0x0177
0000015f: JUMP
00000160: JUMPDEST
00000161: DUP1
00000162: PUSH4 0x088a2b9c
00000167: EQ
00000168: PUSH2 0x017c
0000016b: JUMPI
0000016c: DUP1
0000016d: PUSH4 0x241f362c
00000172: EQ
00000173: PUSH2 0x01a5
00000176: JUMPI
00000177: JUMPDEST
00000178: PUSH1 0x00
0000017a: DUP1
0000017b: REVERT
0000017c: JUMPDEST
0000017d: PUSH2 0x018f
00000180: PUSH2 0x018a
00000183: CALLDATASIZE
00000184: PUSH1 0x04
00000186: PUSH2 0x1cc7
00000189: JUMP
0000018a: JUMPDEST
0000018b: PUSH2 0x02e5
0000018e: JUMP
0000018f: JUMPDEST
00000190: PUSH1 0x40
00000192: MLOAD
00000193: PUSH2 0x019c
00000196: SWAP2
00000197: SWAP1
00000198: PUSH2 0x1f67
0000019b: JUMP
0000019c: JUMPDEST
0000019d: PUSH1 0x40
0000019f: MLOAD
000001a0: DUP1
000001a1: SWAP2
000001a2: SUB
000001a3: SWAP1
000001a4: RETURN
000001a5: JUMPDEST
000001a6: PUSH2 0x01ad
000001a9: PUSH2 0x034a
000001ac: JUMP
000001ad: JUMPDEST
000001ae: STOP
000001af: JUMPDEST
000001b0: PUSH2 0x018f
000001b3: PUSH2 0x01bd
000001b6: CALLDATASIZE
000001b7: PUSH1 0x04
000001b9: PUSH2 0x1cc7
000001bc: JUMP
000001bd: JUMPDEST
000001be: PUSH2 0x0524
000001c1: JUMP
000001c2: JUMPDEST
000001c3: PUSH2 0x01ad
000001c6: PUSH2 0x01d0
000001c9: CALLDATASIZE
000001ca: PUSH1 0x04
000001cc: PUSH2 0x1c56
000001cf: JUMP
000001d0: JUMPDEST
000001d1: PUSH2 0x0582
000001d4: JUMP
000001d5: JUMPDEST
000001d6: PUSH2 0x01e8
000001d9: PUSH2 0x01e3
000001dc: CALLDATASIZE
000001dd: PUSH1 0x04
000001df: PUSH2 0x1dab
000001e2: JUMP
000001e3: JUMPDEST
000001e4: PUSH2 0x0800
000001e7: JUMP
000001e8: JUMPDEST
000001e9: PUSH1 0x40
000001eb: MLOAD
000001ec: PUSH2 0x019c
000001ef: SWAP2
000001f0: SWAP1
000001f1: PUSH2 0x1e86
000001f4: JUMP
000001f5: JUMPDEST
000001f6: PUSH2 0x01fd
000001f9: PUSH2 0x081d
000001fc: JUMP
000001fd: JUMPDEST
000001fe: PUSH1 0x40
00000200: MLOAD
00000201: PUSH2 0x019c
00000204: SWAP2
00000205: SWAP1
00000206: PUSH2 0x1f98
00000209: JUMP
0000020a: JUMPDEST
0000020b: PUSH2 0x01fd
0000020e: PUSH2 0x0218
00000211: CALLDATASIZE
00000212: PUSH1 0x04
00000214: PUSH2 0x1be9
00000217: JUMP
00000218: JUMPDEST
00000219: PUSH2 0x0822
0000021c: JUMP
0000021d: JUMPDEST
0000021e: PUSH2 0x01ad
00000221: PUSH2 0x022b
00000224: CALLDATASIZE
00000225: PUSH1 0x04
00000227: PUSH2 0x1dab
0000022a: JUMP
0000022b: JUMPDEST
0000022c: PUSH2 0x0840
0000022f: JUMP
00000230: JUMPDEST
00000231: PUSH2 0x018f
00000234: PUSH2 0x023e
00000237: CALLDATASIZE
00000238: PUSH1 0x04
0000023a: PUSH2 0x1be9
0000023d: JUMP
0000023e: JUMPDEST
0000023f: PUSH2 0x085c
00000242: JUMP
00000243: JUMPDEST
00000244: PUSH2 0x01ad
00000247: PUSH2 0x0975
0000024a: JUMP
0000024b: JUMPDEST
0000024c: PUSH2 0x01fd
0000024f: PUSH2 0x09ec
00000252: JUMP
00000253: JUMPDEST
00000254: PUSH2 0x01e8
00000257: PUSH2 0x0bb0
0000025a: JUMP
0000025b: JUMPDEST
0000025c: PUSH2 0x01e8
0000025f: PUSH2 0x0269
00000262: CALLDATASIZE
00000263: PUSH1 0x04
00000265: PUSH2 0x1dab
00000268: JUMP
00000269: JUMPDEST
0000026a: PUSH2 0x0bbf
0000026d: JUMP
0000026e: JUMPDEST
0000026f: PUSH2 0x01e8
00000272: PUSH2 0x027c
00000275: CALLDATASIZE
00000276: PUSH1 0x04
00000278: PUSH2 0x1dab
0000027b: JUMP
0000027c: JUMPDEST
0000027d: PUSH2 0x0bcc
00000280: JUMP
00000281: JUMPDEST
00000282: PUSH2 0x01e8
00000285: PUSH2 0x0bd9
00000288: JUMP
00000289: JUMPDEST
0000028a: PUSH2 0x01ad
0000028d: PUSH2 0x0297
00000290: CALLDATASIZE
00000291: PUSH1 0x04
00000293: PUSH2 0x1cc7
00000296: JUMP
00000297: JUMPDEST
00000298: PUSH2 0x0be8
0000029b: JUMP
0000029c: JUMPDEST
0000029d: PUSH2 0x01fd
000002a0: PUSH2 0x0f18
000002a3: JUMP
000002a4: JUMPDEST
000002a5: PUSH2 0x01ad
000002a8: PUSH2 0x0f1e
000002ab: JUMP
000002ac: JUMPDEST
000002ad: PUSH2 0x01fd
000002b0: PUSH2 0x02ba
000002b3: CALLDATASIZE
000002b4: PUSH1 0x04
000002b6: PUSH2 0x1c21
000002b9: JUMP
000002ba: JUMPDEST
000002bb: PUSH2 0x1158
000002be: JUMP
000002bf: JUMPDEST
000002c0: PUSH2 0x01ad
000002c3: PUSH2 0x02cd
000002c6: CALLDATASIZE
000002c7: PUSH1 0x04
000002c9: PUSH2 0x1be9
000002cc: JUMP
000002cd: JUMPDEST
000002ce: PUSH2 0x11aa
000002d1: JUMP
000002d2: JUMPDEST
000002d3: PUSH2 0x01ad
000002d6: PUSH2 0x02e0
000002d9: CALLDATASIZE
000002da: PUSH1 0x04
000002dc: PUSH2 0x1cc7
000002df: JUMP
000002e0: JUMPDEST
000002e1: PUSH2 0x1247
000002e4: JUMP
000002e5: JUMPDEST
000002e6: PUSH2 0x02ed
000002e9: PUSH2 0x1b51
000002ec: JUMP
000002ed: JUMPDEST
000002ee: PUSH2 0x02f5
000002f1: PUSH2 0x1b51
000002f4: JUMP
000002f5: JUMPDEST
000002f6: PUSH1 0x00
000002f8: JUMPDEST
000002f9: PUSH1 0x05
000002fb: DUP2
000002fc: LT
000002fd: ISZERO
000002fe: PUSH2 0x0343
00000301: JUMPI
00000302: PUSH1 0x00
00000304: PUSH2 0x030c
00000307: DUP3
00000308: PUSH2 0x13f8
0000030b: JUMP
0000030c: JUMPDEST
0000030d: SWAP1
0000030e: POP
0000030f: PUSH2 0x0329
00000312: DUP2
00000313: DUP7
00000314: DUP5
00000315: PUSH1 0x05
00000317: DUP2
00000318: LT
00000319: PUSH2 0x031e
0000031c: JUMPI
0000031d: INVALID
0000031e: JUMPDEST
0000031f: PUSH1 0x20
00000321: MUL
00000322: ADD
00000323: CALLDATALOAD
00000324: SWAP1
00000325: PUSH2 0x14b8
00000328: JUMP
00000329: JUMPDEST
0000032a: DUP4
0000032b: DUP4
0000032c: PUSH1 0x05
0000032e: DUP2
0000032f: LT
00000330: PUSH2 0x0335
00000333: JUMPI
00000334: INVALID
00000335: JUMPDEST
00000336: PUSH1 0x20
00000338: MUL
00000339: ADD
0000033a: MSTORE
0000033b: POP
0000033c: PUSH1 0x01
0000033e: ADD
0000033f: PUSH2 0x02f8
00000342: JUMP
00000343: JUMPDEST
00000344: POP
00000345: SWAP3
00000346: SWAP2
00000347: POP
00000348: POP
00000349: JUMP
0000034a: JUMPDEST
0000034b: PUSH1 0x00
0000034d: SLOAD
0000034e: PUSH1 0x01
00000350: PUSH1 0x01
00000352: PUSH1 0xa0
00000354: SHL
00000355: SUB
00000356: AND
00000357: CALLER
00000358: EQ
00000359: PUSH2 0x0361
0000035c: JUMPI
0000035d: PUSH1 0x00
0000035f: DUP1
00000360: REVERT
00000361: JUMPDEST
00000362: PUSH1 0x00
00000364: JUMPDEST
00000365: PUSH1 0x05
00000367: DUP2
00000368: LT
00000369: ISZERO
0000036a: PUSH2 0x0521
0000036d: JUMPI
0000036e: PUSH1 0x03
00000370: DUP2
00000371: PUSH1 0x05
00000373: DUP2
00000374: LT
00000375: PUSH2 0x037a
00000378: JUMPI
00000379: INVALID
0000037a: JUMPDEST
0000037b: ADD
0000037c: PUSH1 0x00
0000037e: SWAP1
0000037f: SLOAD
00000380: SWAP1
00000381: PUSH2 0x0100
00000384: EXP
00000385: SWAP1
00000386: DIV
00000387: PUSH1 0x01
00000389: PUSH1 0x01
0000038b: PUSH1 0xa0
0000038d: SHL
0000038e: SUB
0000038f: AND
00000390: PUSH1 0x01
00000392: PUSH1 0x01
00000394: PUSH1 0xa0
00000396: SHL
00000397: SUB
00000398: AND
00000399: PUSH4 0xb16a19de
0000039e: PUSH1 0x40
000003a0: MLOAD
000003a1: DUP2
000003a2: PUSH4 0xffffffff
000003a7: AND
000003a8: PUSH1 0xe0
000003aa: SHL
000003ab: DUP2
000003ac: MSTORE
000003ad: PUSH1 0x04
000003af: ADD
000003b0: PUSH1 0x20
000003b2: PUSH1 0x40
000003b4: MLOAD
000003b5: DUP1
000003b6: DUP4
000003b7: SUB
000003b8: DUP2
000003b9: DUP7
000003ba: DUP1
000003bb: EXTCODESIZE
000003bc: ISZERO
000003bd: DUP1
000003be: ISZERO
000003bf: PUSH2 0x03c7
000003c2: JUMPI
000003c3: PUSH1 0x00
000003c5: DUP1
000003c6: REVERT
000003c7: JUMPDEST
000003c8: POP
000003c9: GAS
000003ca: STATICCALL
000003cb: ISZERO
000003cc: DUP1
000003cd: ISZERO
000003ce: PUSH2 0x03db
000003d1: JUMPI
000003d2: RETURNDATASIZE
000003d3: PUSH1 0x00
000003d5: DUP1
000003d6: RETURNDATACOPY
000003d7: RETURNDATASIZE
000003d8: PUSH1 0x00
000003da: REVERT
000003db: JUMPDEST
000003dc: POP
000003dd: POP
000003de: POP
000003df: POP
000003e0: PUSH1 0x40
000003e2: MLOAD
000003e3: RETURNDATASIZE
000003e4: PUSH1 0x1f
000003e6: NOT
000003e7: PUSH1 0x1f
000003e9: DUP3
000003ea: ADD
000003eb: AND
000003ec: DUP3
000003ed: ADD
000003ee: DUP1
000003ef: PUSH1 0x40
000003f1: MSTORE
000003f2: POP
000003f3: DUP2
000003f4: ADD
000003f5: SWAP1
000003f6: PUSH2 0x03ff
000003f9: SWAP2
000003fa: SWAP1
000003fb: PUSH2 0x1c05
000003fe: JUMP
000003ff: JUMPDEST
00000400: PUSH1 0x08
00000402: DUP3
00000403: PUSH1 0x05
00000405: DUP2
00000406: LT
00000407: PUSH2 0x040c
0000040a: JUMPI
0000040b: INVALID
0000040c: JUMPDEST
0000040d: ADD
0000040e: DUP1
0000040f: SLOAD
00000410: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000431: AND
00000432: PUSH1 0x01
00000434: PUSH1 0x01
00000436: PUSH1 0xa0
00000438: SHL
00000439: SUB
0000043a: SWAP3
0000043b: SWAP1
0000043c: SWAP3
0000043d: AND
0000043e: SWAP2
0000043f: SWAP1
00000440: SWAP2
00000441: OR
00000442: SWAP1
00000443: SSTORE
00000444: PUSH1 0x03
00000446: DUP2
00000447: PUSH1 0x05
00000449: DUP2
0000044a: LT
0000044b: PUSH2 0x0450
0000044e: JUMPI
0000044f: INVALID
00000450: JUMPDEST
00000451: ADD
00000452: PUSH1 0x00
00000454: SWAP1
00000455: SLOAD
00000456: SWAP1
00000457: PUSH2 0x0100
0000045a: EXP
0000045b: SWAP1
0000045c: DIV
0000045d: PUSH1 0x01
0000045f: PUSH1 0x01
00000461: PUSH1 0xa0
00000463: SHL
00000464: SUB
00000465: AND
00000466: PUSH1 0x01
00000468: PUSH1 0x01
0000046a: PUSH1 0xa0
0000046c: SHL
0000046d: SUB
0000046e: AND
0000046f: PUSH4 0x7535d246
00000474: PUSH1 0x40
00000476: MLOAD
00000477: DUP2
00000478: PUSH4 0xffffffff
0000047d: AND
0000047e: PUSH1 0xe0
00000480: SHL
00000481: DUP2
00000482: MSTORE
00000483: PUSH1 0x04
00000485: ADD
00000486: PUSH1 0x20
00000488: PUSH1 0x40
0000048a: MLOAD
0000048b: DUP1
0000048c: DUP4
0000048d: SUB
0000048e: DUP2
0000048f: DUP7
00000490: DUP1
00000491: EXTCODESIZE
00000492: ISZERO
00000493: DUP1
00000494: ISZERO
00000495: PUSH2 0x049d
00000498: JUMPI
00000499: PUSH1 0x00
0000049b: DUP1
0000049c: REVERT
0000049d: JUMPDEST
0000049e: POP
0000049f: GAS
000004a0: STATICCALL
000004a1: ISZERO
000004a2: DUP1
000004a3: ISZERO
000004a4: PUSH2 0x04b1
000004a7: JUMPI
000004a8: RETURNDATASIZE
000004a9: PUSH1 0x00
000004ab: DUP1
000004ac: RETURNDATACOPY
000004ad: RETURNDATASIZE
000004ae: PUSH1 0x00
000004b0: REVERT
000004b1: JUMPDEST
000004b2: POP
000004b3: POP
000004b4: POP
000004b5: POP
000004b6: PUSH1 0x40
000004b8: MLOAD
000004b9: RETURNDATASIZE
000004ba: PUSH1 0x1f
000004bc: NOT
000004bd: PUSH1 0x1f
000004bf: DUP3
000004c0: ADD
000004c1: AND
000004c2: DUP3
000004c3: ADD
000004c4: DUP1
000004c5: PUSH1 0x40
000004c7: MSTORE
000004c8: POP
000004c9: DUP2
000004ca: ADD
000004cb: SWAP1
000004cc: PUSH2 0x04d5
000004cf: SWAP2
000004d0: SWAP1
000004d1: PUSH2 0x1c05
000004d4: JUMP
000004d5: JUMPDEST
000004d6: PUSH1 0x0d
000004d8: DUP3
000004d9: PUSH1 0x05
000004db: DUP2
000004dc: LT
000004dd: PUSH2 0x04e2
000004e0: JUMPI
000004e1: INVALID
000004e2: JUMPDEST
000004e3: ADD
000004e4: DUP1
000004e5: SLOAD
000004e6: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000507: AND
00000508: PUSH1 0x01
0000050a: PUSH1 0x01
0000050c: PUSH1 0xa0
0000050e: SHL
0000050f: SUB
00000510: SWAP3
00000511: SWAP1
00000512: SWAP3
00000513: AND
00000514: SWAP2
00000515: SWAP1
00000516: SWAP2
00000517: OR
00000518: SWAP1
00000519: SSTORE
0000051a: PUSH1 0x01
0000051c: ADD
0000051d: PUSH2 0x0364
00000520: JUMP
00000521: JUMPDEST
00000522: POP
00000523: JUMP
00000524: JUMPDEST
00000525: PUSH2 0x052c
00000528: PUSH2 0x1b51
0000052b: JUMP
0000052c: JUMPDEST
0000052d: PUSH2 0x0534
00000530: PUSH2 0x1b51
00000533: JUMP
00000534: JUMPDEST
00000535: PUSH1 0x00
00000537: JUMPDEST
00000538: PUSH1 0x05
0000053a: DUP2
0000053b: LT
0000053c: ISZERO
0000053d: PUSH2 0x0343
00000540: JUMPI
00000541: PUSH1 0x00
00000543: PUSH2 0x054b
00000546: DUP3
00000547: PUSH2 0x13f8
0000054a: JUMP
0000054b: JUMPDEST
0000054c: SWAP1
0000054d: POP
0000054e: PUSH2 0x0568
00000551: DUP2
00000552: DUP7
00000553: DUP5
00000554: PUSH1 0x05
00000556: DUP2
00000557: LT
00000558: PUSH2 0x055d
0000055b: JUMPI
0000055c: INVALID
0000055d: JUMPDEST
0000055e: PUSH1 0x20
00000560: MUL
00000561: ADD
00000562: CALLDATALOAD
00000563: SWAP1
00000564: PUSH2 0x1595
00000567: JUMP
00000568: JUMPDEST
00000569: DUP4
0000056a: DUP4
0000056b: PUSH1 0x05
0000056d: DUP2
0000056e: LT
0000056f: PUSH2 0x0574
00000572: JUMPI
00000573: INVALID
00000574: JUMPDEST
00000575: PUSH1 0x20
00000577: MUL
00000578: ADD
00000579: MSTORE
0000057a: POP
0000057b: PUSH1 0x01
0000057d: ADD
0000057e: PUSH2 0x0537
00000581: JUMP
00000582: JUMPDEST
00000583: PUSH1 0x00
00000585: SLOAD
00000586: PUSH1 0x01
00000588: PUSH1 0x01
0000058a: PUSH1 0xa0
0000058c: SHL
0000058d: SUB
0000058e: AND
0000058f: CALLER
00000590: EQ
00000591: PUSH2 0x0599
00000594: JUMPI
00000595: PUSH1 0x00
00000597: DUP1
00000598: REVERT
00000599: JUMPDEST
0000059a: PUSH2 0x05a1
0000059d: PUSH2 0x1b51
000005a0: JUMP
000005a1: JUMPDEST
000005a2: PUSH2 0x05ac
000005a5: PUSH1 0x01
000005a7: SLOAD
000005a8: PUSH2 0x16aa
000005ab: JUMP
000005ac: JUMPDEST
000005ad: SWAP1
000005ae: POP
000005af: PUSH2 0x05b6
000005b2: PUSH2 0x1b6f
000005b5: JUMP
000005b6: JUMPDEST
000005b7: PUSH1 0x00
000005b9: JUMPDEST
000005ba: DUP4
000005bb: DUP2
000005bc: LT
000005bd: ISZERO
000005be: PUSH2 0x0786
000005c1: JUMPI
000005c2: PUSH2 0x05c9
000005c5: PUSH2 0x1b8d
000005c8: JUMP
000005c9: JUMPDEST
000005ca: DUP6
000005cb: DUP6
000005cc: DUP4
000005cd: DUP2
000005ce: DUP2
000005cf: LT
000005d0: PUSH2 0x05d5
000005d3: JUMPI
000005d4: INVALID
000005d5: JUMPDEST
000005d6: SWAP1
000005d7: POP
000005d8: PUSH2 0x0120
000005db: MUL
000005dc: ADD
000005dd: DUP1
000005de: CALLDATASIZE
000005df: SUB
000005e0: DUP2
000005e1: ADD
000005e2: SWAP1
000005e3: PUSH2 0x05ec
000005e6: SWAP2
000005e7: SWAP1
000005e8: PUSH2 0x1d02
000005eb: JUMP
000005ec: JUMPDEST
000005ed: PUSH1 0x80
000005ef: DUP2
000005f0: ADD
000005f1: MLOAD
000005f2: PUSH1 0x01
000005f4: PUSH1 0x01
000005f6: PUSH1 0xa0
000005f8: SHL
000005f9: SUB
000005fa: AND
000005fb: PUSH1 0x00
000005fd: SWAP1
000005fe: DUP2
000005ff: MSTORE
00000600: PUSH1 0x13
00000602: PUSH1 0x20
00000604: MSTORE
00000605: PUSH1 0x40
00000607: SWAP1
00000608: KECCAK256
00000609: SLOAD
0000060a: SWAP1
0000060b: SWAP2
0000060c: POP
0000060d: PUSH2 0x0617
00000610: SWAP1
00000611: DUP5
00000612: SWAP1
00000613: PUSH2 0x1700
00000616: JUMP
00000617: JUMPDEST
00000618: DUP3
00000619: MLOAD
0000061a: PUSH2 0x0624
0000061d: SWAP1
0000061e: DUP3
0000061f: SWAP1
00000620: PUSH2 0x1746
00000623: JUMP
00000624: JUMPDEST
00000625: DUP3
00000626: MLOAD
00000627: PUSH1 0x01
00000629: ADD
0000062a: DUP4
0000062b: MSTORE
0000062c: PUSH1 0x00
0000062e: JUMPDEST
0000062f: PUSH1 0x05
00000631: DUP2
00000632: LT
00000633: ISZERO
00000634: PUSH2 0x0756
00000637: JUMPI
00000638: DUP2
00000639: MLOAD
0000063a: PUSH1 0x00
0000063c: SWAP1
0000063d: DUP3
0000063e: PUSH1 0x05
00000640: DUP2
00000641: LT
00000642: PUSH2 0x0647
00000645: JUMPI
00000646: INVALID
00000647: JUMPDEST
00000648: PUSH1 0x20
0000064a: MUL
0000064b: ADD
0000064c: MLOAD
0000064d: SWAP1
0000064e: POP
0000064f: DUP1
00000650: PUSH2 0x0659
00000653: JUMPI
00000654: POP
00000655: PUSH2 0x074e
00000658: JUMP
00000659: JUMPDEST
0000065a: PUSH1 0x00
0000065c: DUP6
0000065d: DUP4
0000065e: PUSH1 0x01
00000660: ADD
00000661: PUSH1 0x06
00000663: DUP2
00000664: LT
00000665: PUSH2 0x066a
00000668: JUMPI
00000669: INVALID
0000066a: JUMPDEST
0000066b: PUSH1 0x20
0000066d: MUL
0000066e: ADD
0000066f: MLOAD
00000670: SWAP1
00000671: POP
00000672: PUSH1 0x00
00000674: DUP8
00000675: DUP5
00000676: PUSH1 0x05
00000678: DUP2
00000679: LT
0000067a: PUSH2 0x067f
0000067d: JUMPI
0000067e: INVALID
0000067f: JUMPDEST
00000680: PUSH1 0x20
00000682: MUL
00000683: ADD
00000684: MLOAD
00000685: SWAP1
00000686: POP
00000687: PUSH1 0x00
00000689: DUP1
0000068a: DUP5
0000068b: SLT
0000068c: SWAP1
0000068d: DUP2
0000068e: PUSH2 0x0697
00000691: JUMPI
00000692: DUP5
00000693: PUSH2 0x069c
00000696: JUMP
00000697: JUMPDEST
00000698: DUP5
00000699: PUSH1 0x00
0000069b: SUB
0000069c: JUMPDEST
0000069d: SWAP1
0000069e: POP
0000069f: DUP2
000006a0: ISZERO
000006a1: PUSH2 0x06e7
000006a4: JUMPI
000006a5: DUP1
000006a6: DUP5
000006a7: LT
000006a8: ISZERO
000006a9: PUSH2 0x06e7
000006ac: JUMPI
000006ad: PUSH1 0x40
000006af: MLOAD
000006b0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000006d1: DUP2
000006d2: MSTORE
000006d3: PUSH1 0x04
000006d5: ADD
000006d6: PUSH2 0x06de
000006d9: SWAP1
000006da: PUSH2 0x20d5
000006dd: JUMP
000006de: JUMPDEST
000006df: PUSH1 0x40
000006e1: MLOAD
000006e2: DUP1
000006e3: SWAP2
000006e4: SUB
000006e5: SWAP1
000006e6: REVERT
000006e7: JUMPDEST
000006e8: DUP2
000006e9: PUSH2 0x06fb
000006ec: JUMPI
000006ed: PUSH2 0x06f6
000006f0: DUP5
000006f1: DUP3
000006f2: PUSH2 0x18a8
000006f5: JUMP
000006f6: JUMPDEST
000006f7: PUSH2 0x0705
000006fa: JUMP
000006fb: JUMPDEST
000006fc: PUSH2 0x0705
000006ff: DUP5
00000700: DUP3
00000701: PUSH2 0x18b5
00000704: JUMP
00000705: JUMPDEST
00000706: DUP10
00000707: DUP8
00000708: PUSH1 0x01
0000070a: ADD
0000070b: PUSH1 0x06
0000070d: DUP2
0000070e: LT
0000070f: PUSH2 0x0714
00000712: JUMPI
00000713: INVALID
00000714: JUMPDEST
00000715: PUSH1 0x20
00000717: MUL
00000718: ADD
00000719: MSTORE
0000071a: DUP2
0000071b: PUSH2 0x072d
0000071e: JUMPI
0000071f: PUSH2 0x0728
00000722: DUP4
00000723: DUP3
00000724: PUSH2 0x18a8
00000727: JUMP
00000728: JUMPDEST
00000729: PUSH2 0x0737
0000072c: JUMP
0000072d: JUMPDEST
0000072e: PUSH2 0x0737
00000731: DUP4
00000732: DUP3
00000733: PUSH2 0x18b5
00000736: JUMP
00000737: JUMPDEST
00000738: DUP11
00000739: DUP8
0000073a: PUSH1 0x05
0000073c: DUP2
0000073d: LT
0000073e: PUSH2 0x0743
00000741: JUMPI
00000742: INVALID
00000743: JUMPDEST
00000744: PUSH1 0x20
00000746: MUL
00000747: ADD
00000748: MSTORE
00000749: POP
0000074a: POP
0000074b: POP
0000074c: POP
0000074d: POP
0000074e: JUMPDEST
0000074f: PUSH1 0x01
00000751: ADD
00000752: PUSH2 0x062e
00000755: JUMP
00000756: JUMPDEST
00000757: POP
00000758: PUSH2 0x0760
0000075b: DUP4
0000075c: PUSH2 0x18c7
0000075f: JUMP
00000760: JUMPDEST
00000761: PUSH1 0x80
00000763: SWAP1
00000764: SWAP2
00000765: ADD
00000766: MLOAD
00000767: PUSH1 0x01
00000769: PUSH1 0x01
0000076b: PUSH1 0xa0
0000076d: SHL
0000076e: SUB
0000076f: AND
00000770: PUSH1 0x00
00000772: SWAP1
00000773: DUP2
00000774: MSTORE
00000775: PUSH1 0x13
00000777: PUSH1 0x20
00000779: MSTORE
0000077a: PUSH1 0x40
0000077c: SWAP1
0000077d: KECCAK256
0000077e: SSTORE
0000077f: PUSH1 0x01
00000781: ADD
00000782: PUSH2 0x05b9
00000785: JUMP
00000786: JUMPDEST
00000787: POP
00000788: PUSH1 0x00
0000078a: JUMPDEST
0000078b: PUSH1 0x05
0000078d: DUP2
0000078e: LT
0000078f: ISZERO
00000790: PUSH2 0x07ed
00000793: JUMPI
00000794: PUSH2 0x079c
00000797: DUP2
00000798: PUSH2 0x1944
0000079b: JUMP
0000079c: JUMPDEST
0000079d: DUP4
0000079e: DUP3
0000079f: PUSH1 0x05
000007a1: DUP2
000007a2: LT
000007a3: PUSH2 0x07a8
000007a6: JUMPI
000007a7: INVALID
000007a8: JUMPDEST
000007a9: PUSH1 0x20
000007ab: MUL
000007ac: ADD
000007ad: MLOAD
000007ae: GT
000007af: ISZERO
000007b0: PUSH2 0x07e5
000007b3: JUMPI
000007b4: PUSH1 0x40
000007b6: MLOAD
000007b7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000007d8: DUP2
000007d9: MSTORE
000007da: PUSH1 0x04
000007dc: ADD
000007dd: PUSH2 0x06de
000007e0: SWAP1
000007e1: PUSH2 0x2067
000007e4: JUMP
000007e5: JUMPDEST
000007e6: PUSH1 0x01
000007e8: ADD
000007e9: PUSH2 0x078a
000007ec: JUMP
000007ed: JUMPDEST
000007ee: POP
000007ef: PUSH2 0x07f7
000007f2: DUP3
000007f3: PUSH2 0x1a8a
000007f6: JUMP
000007f7: JUMPDEST
000007f8: PUSH1 0x01
000007fa: SSTORE
000007fb: POP
000007fc: POP
000007fd: POP
000007fe: POP
000007ff: JUMP
00000800: JUMPDEST
00000801: PUSH1 0x03
00000803: DUP2
00000804: PUSH1 0x05
00000806: DUP2
00000807: LT
00000808: PUSH2 0x080d
0000080b: JUMPI
0000080c: INVALID
0000080d: JUMPDEST
0000080e: ADD
0000080f: SLOAD
00000810: PUSH1 0x01
00000812: PUSH1 0x01
00000814: PUSH1 0xa0
00000816: SHL
00000817: SUB
00000818: AND
00000819: SWAP1
0000081a: POP
0000081b: DUP2
0000081c: JUMP
0000081d: JUMPDEST
0000081e: PUSH1 0x06
00000820: DUP2
00000821: JUMP
00000822: JUMPDEST
00000823: PUSH1 0x01
00000825: PUSH1 0x01
00000827: PUSH1 0xa0
00000829: SHL
0000082a: SUB
0000082b: AND
0000082c: PUSH1 0x00
0000082e: SWAP1
0000082f: DUP2
00000830: MSTORE
00000831: PUSH1 0x13
00000833: PUSH1 0x20
00000835: MSTORE
00000836: PUSH1 0x40
00000838: SWAP1
00000839: KECCAK256
0000083a: SLOAD
0000083b: PUSH1 0xf0
0000083d: SHR
0000083e: SWAP1
0000083f: JUMP
00000840: JUMPDEST
00000841: PUSH1 0x00
00000843: SLOAD
00000844: PUSH1 0x01
00000846: PUSH1 0x01
00000848: PUSH1 0xa0
0000084a: SHL
0000084b: SUB
0000084c: AND
0000084d: CALLER
0000084e: EQ
0000084f: PUSH2 0x0857
00000852: JUMPI
00000853: PUSH1 0x00
00000855: DUP1
00000856: REVERT
00000857: JUMPDEST
00000858: PUSH1 0x02
0000085a: SSTORE
0000085b: JUMP
0000085c: JUMPDEST
0000085d: PUSH2 0x0864
00000860: PUSH2 0x1b51
00000863: JUMP
00000864: JUMPDEST
00000865: PUSH2 0x086c
00000868: PUSH2 0x1b51
0000086b: JUMP
0000086c: JUMPDEST
0000086d: PUSH1 0x00
0000086f: SLOAD
00000870: PUSH1 0x01
00000872: PUSH1 0x01
00000874: PUSH1 0xa0
00000876: SHL
00000877: SUB
00000878: DUP5
00000879: DUP2
0000087a: AND
0000087b: SWAP2
0000087c: AND
0000087d: EQ
0000087e: ISZERO
0000087f: PUSH2 0x08f6
00000882: JUMPI
00000883: PUSH2 0x088a
00000886: PUSH2 0x1b51
00000889: JUMP
0000088a: JUMPDEST
0000088b: PUSH2 0x0895
0000088e: PUSH1 0x01
00000890: SLOAD
00000891: PUSH2 0x16aa
00000894: JUMP
00000895: JUMPDEST
00000896: SWAP1
00000897: POP
00000898: PUSH1 0x00
0000089a: JUMPDEST
0000089b: PUSH1 0x05
0000089d: DUP2
0000089e: LT
0000089f: ISZERO
000008a0: PUSH2 0x08ef
000008a3: JUMPI
000008a4: PUSH1 0x00
000008a6: DUP3
000008a7: DUP3
000008a8: PUSH1 0x05
000008aa: DUP2
000008ab: LT
000008ac: PUSH2 0x08b1
000008af: JUMPI
000008b0: INVALID
000008b1: JUMPDEST
000008b2: PUSH1 0x20
000008b4: MUL
000008b5: ADD
000008b6: MLOAD
000008b7: PUSH2 0x08bf
000008ba: DUP4
000008bb: PUSH2 0x1944
000008be: JUMP
000008bf: JUMPDEST
000008c0: SUB
000008c1: SWAP1
000008c2: POP
000008c3: PUSH2 0x08d5
000008c6: PUSH2 0x08ce
000008c9: DUP4
000008ca: PUSH2 0x13f8
000008cd: JUMP
000008ce: JUMPDEST
000008cf: DUP3
000008d0: SWAP1
000008d1: PUSH2 0x14b8
000008d4: JUMP
000008d5: JUMPDEST
000008d6: DUP5
000008d7: DUP4
000008d8: PUSH1 0x05
000008da: DUP2
000008db: LT
000008dc: PUSH2 0x08e1
000008df: JUMPI
000008e0: INVALID
000008e1: JUMPDEST
000008e2: PUSH1 0x20
000008e4: MUL
000008e5: ADD
000008e6: MSTORE
000008e7: POP
000008e8: PUSH1 0x01
000008ea: ADD
000008eb: PUSH2 0x089a
000008ee: JUMP
000008ef: JUMPDEST
000008f0: POP
000008f1: POP
000008f2: PUSH2 0x096f
000008f5: JUMP
000008f6: JUMPDEST
000008f7: PUSH2 0x08fe
000008fa: PUSH2 0x1b6f
000008fd: JUMP
000008fe: JUMPDEST
000008ff: PUSH1 0x01
00000901: PUSH1 0x01
00000903: PUSH1 0xa0
00000905: SHL
00000906: SUB
00000907: DUP5
00000908: AND
00000909: PUSH1 0x00
0000090b: SWAP1
0000090c: DUP2
0000090d: MSTORE
0000090e: PUSH1 0x13
00000910: PUSH1 0x20
00000912: MSTORE
00000913: PUSH1 0x40
00000915: SWAP1
00000916: KECCAK256
00000917: SLOAD
00000918: PUSH2 0x0922
0000091b: SWAP1
0000091c: DUP3
0000091d: SWAP1
0000091e: PUSH2 0x1700
00000921: JUMP
00000922: JUMPDEST
00000923: PUSH1 0x00
00000925: JUMPDEST
00000926: PUSH1 0x05
00000928: DUP2
00000929: LT
0000092a: ISZERO
0000092b: PUSH2 0x096c
0000092e: JUMPI
0000092f: PUSH1 0x00
00000931: DUP3
00000932: DUP3
00000933: PUSH1 0x01
00000935: ADD
00000936: PUSH1 0x06
00000938: DUP2
00000939: LT
0000093a: PUSH2 0x093f
0000093d: JUMPI
0000093e: INVALID
0000093f: JUMPDEST
00000940: PUSH1 0x20
00000942: MUL
00000943: ADD
00000944: MLOAD
00000945: SWAP1
00000946: POP
00000947: PUSH2 0x0952
0000094a: PUSH2 0x08ce
0000094d: DUP4
0000094e: PUSH2 0x13f8
00000951: JUMP
00000952: JUMPDEST
00000953: DUP5
00000954: DUP4
00000955: PUSH1 0x05
00000957: DUP2
00000958: LT
00000959: PUSH2 0x095e
0000095c: JUMPI
0000095d: INVALID
0000095e: JUMPDEST
0000095f: PUSH1 0x20
00000961: MUL
00000962: ADD
00000963: MSTORE
00000964: POP
00000965: PUSH1 0x01
00000967: ADD
00000968: PUSH2 0x0925
0000096b: JUMP
0000096c: JUMPDEST
0000096d: POP
0000096e: POP
0000096f: JUMPDEST
00000970: SWAP3
00000971: SWAP2
00000972: POP
00000973: POP
00000974: JUMP
00000975: JUMPDEST
00000976: PUSH1 0x00
00000978: SLOAD
00000979: PUSH1 0x01
0000097b: PUSH1 0x01
0000097d: PUSH1 0xa0
0000097f: SHL
00000980: SUB
00000981: AND
00000982: CALLER
00000983: EQ
00000984: PUSH2 0x098c
00000987: JUMPI
00000988: PUSH1 0x00
0000098a: DUP1
0000098b: REVERT
0000098c: JUMPDEST
0000098d: PUSH1 0x00
0000098f: DUP1
00000990: SLOAD
00000991: PUSH1 0x40
00000993: MLOAD
00000994: PUSH1 0x01
00000996: PUSH1 0x01
00000998: PUSH1 0xa0
0000099a: SHL
0000099b: SUB
0000099c: SWAP1
0000099d: SWAP2
0000099e: AND
0000099f: SWAP2
000009a0: PUSH32 0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820
000009c1: SWAP2
000009c2: LOG2
000009c3: PUSH1 0x00
000009c5: DUP1
000009c6: SLOAD
000009c7: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000009e8: AND
000009e9: SWAP1
000009ea: SSTORE
000009eb: JUMP
000009ec: JUMPDEST
000009ed: PUSH1 0x40
000009ef: DUP1
000009f0: MLOAD
000009f1: PUSH1 0x05
000009f3: DUP1
000009f4: DUP3
000009f5: MSTORE
000009f6: PUSH1 0xc0
000009f8: DUP3
000009f9: ADD
000009fa: SWAP1
000009fb: SWAP3
000009fc: MSTORE
000009fd: PUSH1 0x00
000009ff: SWAP2
00000a00: PUSH1 0x60
00000a02: SWAP2
00000a03: SWAP1
00000a04: PUSH1 0x20
00000a06: DUP3
00000a07: ADD
00000a08: PUSH1 0xa0
00000a0a: DUP1
00000a0b: CALLDATASIZE
00000a0c: DUP4
00000a0d: CALLDATACOPY
00000a0e: POP
00000a0f: POP
00000a10: PUSH1 0x03
00000a12: SLOAD
00000a13: DUP3
00000a14: MLOAD
00000a15: SWAP3
00000a16: SWAP4
00000a17: POP
00000a18: PUSH1 0x01
00000a1a: PUSH1 0x01
00000a1c: PUSH1 0xa0
00000a1e: SHL
00000a1f: SUB
00000a20: AND
00000a21: SWAP2
00000a22: DUP4
00000a23: SWAP2
00000a24: POP
00000a25: PUSH1 0x00
00000a27: SWAP1
00000a28: PUSH2 0x0a2d
00000a2b: JUMPI
00000a2c: INVALID
00000a2d: JUMPDEST
00000a2e: PUSH1 0x01
00000a30: PUSH1 0x01
00000a32: PUSH1 0xa0
00000a34: SHL
00000a35: SUB
00000a36: SWAP3
00000a37: DUP4
00000a38: AND
00000a39: PUSH1 0x20
00000a3b: SWAP2
00000a3c: DUP3
00000a3d: MUL
00000a3e: SWAP3
00000a3f: SWAP1
00000a40: SWAP3
00000a41: ADD
00000a42: ADD
00000a43: MSTORE
00000a44: PUSH1 0x04
00000a46: SLOAD
00000a47: DUP3
00000a48: MLOAD
00000a49: SWAP2
00000a4a: AND
00000a4b: SWAP1
00000a4c: DUP3
00000a4d: SWAP1
00000a4e: PUSH1 0x01
00000a50: SWAP1
00000a51: DUP2
00000a52: LT
00000a53: PUSH2 0x0a58
00000a56: JUMPI
00000a57: INVALID
00000a58: JUMPDEST
00000a59: PUSH1 0x01
00000a5b: PUSH1 0x01
00000a5d: PUSH1 0xa0
00000a5f: SHL
00000a60: SUB
00000a61: SWAP3
00000a62: DUP4
00000a63: AND
00000a64: PUSH1 0x20
00000a66: SWAP2
00000a67: DUP3
00000a68: MUL
00000a69: SWAP3
00000a6a: SWAP1
00000a6b: SWAP3
00000a6c: ADD
00000a6d: ADD
00000a6e: MSTORE
00000a6f: PUSH1 0x05
00000a71: SLOAD
00000a72: DUP3
00000a73: MLOAD
00000a74: SWAP2
00000a75: AND
00000a76: SWAP1
00000a77: DUP3
00000a78: SWAP1
00000a79: PUSH1 0x02
00000a7b: SWAP1
00000a7c: DUP2
00000a7d: LT
00000a7e: PUSH2 0x0a83
00000a81: JUMPI
00000a82: INVALID
00000a83: JUMPDEST
00000a84: PUSH1 0x01
00000a86: PUSH1 0x01
00000a88: PUSH1 0xa0
00000a8a: SHL
00000a8b: SUB
00000a8c: SWAP3
00000a8d: DUP4
00000a8e: AND
00000a8f: PUSH1 0x20
00000a91: SWAP2
00000a92: DUP3
00000a93: MUL
00000a94: SWAP3
00000a95: SWAP1
00000a96: SWAP3
00000a97: ADD
00000a98: ADD
00000a99: MSTORE
00000a9a: PUSH1 0x06
00000a9c: SLOAD
00000a9d: DUP3
00000a9e: MLOAD
00000a9f: SWAP2
00000aa0: AND
00000aa1: SWAP1
00000aa2: DUP3
00000aa3: SWAP1
00000aa4: PUSH1 0x03
00000aa6: SWAP1
00000aa7: DUP2
00000aa8: LT
00000aa9: PUSH2 0x0aae
00000aac: JUMPI
00000aad: INVALID
00000aae: JUMPDEST
00000aaf: PUSH1 0x01
00000ab1: PUSH1 0x01
00000ab3: PUSH1 0xa0
00000ab5: SHL
00000ab6: SUB
00000ab7: SWAP3
00000ab8: DUP4
00000ab9: AND
00000aba: PUSH1 0x20
00000abc: SWAP2
00000abd: DUP3
00000abe: MUL
00000abf: SWAP3
00000ac0: SWAP1
00000ac1: SWAP3
00000ac2: ADD
00000ac3: ADD
00000ac4: MSTORE
00000ac5: PUSH1 0x07
00000ac7: SLOAD
00000ac8: DUP3
00000ac9: MLOAD
00000aca: SWAP2
00000acb: AND
00000acc: SWAP1
00000acd: DUP3
00000ace: SWAP1
00000acf: PUSH1 0x04
00000ad1: SWAP1
00000ad2: DUP2
00000ad3: LT
00000ad4: PUSH2 0x0ad9
00000ad7: JUMPI
00000ad8: INVALID
00000ad9: JUMPDEST
00000ada: PUSH1 0x01
00000adc: PUSH1 0x01
00000ade: PUSH1 0xa0
00000ae0: SHL
00000ae1: SUB
00000ae2: SWAP3
00000ae3: DUP4
00000ae4: AND
00000ae5: PUSH1 0x20
00000ae7: SWAP2
00000ae8: DUP3
00000ae9: MUL
00000aea: SWAP3
00000aeb: SWAP1
00000aec: SWAP3
00000aed: ADD
00000aee: ADD
00000aef: MSTORE
00000af0: PUSH1 0x12
00000af2: SLOAD
00000af3: PUSH1 0x00
00000af5: SLOAD
00000af6: PUSH1 0x40
00000af8: MLOAD
00000af9: PUSH32 0x3111e7b300000000000000000000000000000000000000000000000000000000
00000b1a: DUP2
00000b1b: MSTORE
00000b1c: SWAP2
00000b1d: DUP4
00000b1e: AND
00000b1f: SWAP3
00000b20: PUSH4 0x3111e7b3
00000b25: SWAP3
00000b26: PUSH2 0x0b58
00000b29: SWAP3
00000b2a: DUP7
00000b2b: SWAP3
00000b2c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000b4d: SWAP3
00000b4e: SWAP2
00000b4f: AND
00000b50: SWAP1
00000b51: PUSH1 0x04
00000b53: ADD
00000b54: PUSH2 0x1f03
00000b57: JUMP
00000b58: JUMPDEST
00000b59: PUSH1 0x20
00000b5b: PUSH1 0x40
00000b5d: MLOAD
00000b5e: DUP1
00000b5f: DUP4
00000b60: SUB
00000b61: DUP2
00000b62: PUSH1 0x00
00000b64: DUP8
00000b65: DUP1
00000b66: EXTCODESIZE
00000b67: ISZERO
00000b68: DUP1
00000b69: ISZERO
00000b6a: PUSH2 0x0b72
00000b6d: JUMPI
00000b6e: PUSH1 0x00
00000b70: DUP1
00000b71: REVERT
00000b72: JUMPDEST
00000b73: POP
00000b74: GAS
00000b75: CALL
00000b76: ISZERO
00000b77: DUP1
00000b78: ISZERO
00000b79: PUSH2 0x0b86
00000b7c: JUMPI
00000b7d: RETURNDATASIZE
00000b7e: PUSH1 0x00
00000b80: DUP1
00000b81: RETURNDATACOPY
00000b82: RETURNDATASIZE
00000b83: PUSH1 0x00
00000b85: REVERT
00000b86: JUMPDEST
00000b87: POP
00000b88: POP
00000b89: POP
00000b8a: POP
00000b8b: PUSH1 0x40
00000b8d: MLOAD
00000b8e: RETURNDATASIZE
00000b8f: PUSH1 0x1f
00000b91: NOT
00000b92: PUSH1 0x1f
00000b94: DUP3
00000b95: ADD
00000b96: AND
00000b97: DUP3
00000b98: ADD
00000b99: DUP1
00000b9a: PUSH1 0x40
00000b9c: MSTORE
00000b9d: POP
00000b9e: DUP2
00000b9f: ADD
00000ba0: SWAP1
00000ba1: PUSH2 0x0baa
00000ba4: SWAP2
00000ba5: SWAP1
00000ba6: PUSH2 0x1dc3
00000ba9: JUMP
00000baa: JUMPDEST
00000bab: SWAP2
00000bac: POP
00000bad: POP
00000bae: SWAP1
00000baf: JUMP
00000bb0: JUMPDEST
00000bb1: PUSH1 0x00
00000bb3: SLOAD
00000bb4: PUSH1 0x01
00000bb6: PUSH1 0x01
00000bb8: PUSH1 0xa0
00000bba: SHL
00000bbb: SUB
00000bbc: AND
00000bbd: DUP2
00000bbe: JUMP
00000bbf: JUMPDEST
00000bc0: PUSH1 0x08
00000bc2: DUP2
00000bc3: PUSH1 0x05
00000bc5: DUP2
00000bc6: LT
00000bc7: PUSH2 0x080d
00000bca: JUMPI
00000bcb: INVALID
00000bcc: JUMPDEST
00000bcd: PUSH1 0x0d
00000bcf: DUP2
00000bd0: PUSH1 0x05
00000bd2: DUP2
00000bd3: LT
00000bd4: PUSH2 0x080d
00000bd7: JUMPI
00000bd8: INVALID
00000bd9: JUMPDEST
00000bda: PUSH1 0x12
00000bdc: SLOAD
00000bdd: PUSH1 0x01
00000bdf: PUSH1 0x01
00000be1: PUSH1 0xa0
00000be3: SHL
00000be4: SUB
00000be5: AND
00000be6: DUP2
00000be7: JUMP
00000be8: JUMPDEST
00000be9: PUSH2 0x0bf0
00000bec: PUSH2 0x1b6f
00000bef: JUMP
00000bf0: JUMPDEST
00000bf1: CALLER
00000bf2: PUSH1 0x00
00000bf4: SWAP1
00000bf5: DUP2
00000bf6: MSTORE
00000bf7: PUSH1 0x13
00000bf9: PUSH1 0x20
00000bfb: MSTORE
00000bfc: PUSH1 0x40
00000bfe: SWAP1
00000bff: KECCAK256
00000c00: SLOAD
00000c01: PUSH2 0x0c0b
00000c04: SWAP1
00000c05: DUP3
00000c06: SWAP1
00000c07: PUSH2 0x1700
00000c0a: JUMP
00000c0b: JUMPDEST
00000c0c: PUSH2 0x0c13
00000c0f: PUSH2 0x1b51
00000c12: JUMP
00000c13: JUMPDEST
00000c14: PUSH2 0x0c1e
00000c17: PUSH1 0x01
00000c19: SLOAD
00000c1a: PUSH2 0x16aa
00000c1d: JUMP
00000c1e: JUMPDEST
00000c1f: SWAP1
00000c20: POP
00000c21: PUSH1 0x00
00000c23: JUMPDEST
00000c24: PUSH1 0x05
00000c26: DUP2
00000c27: LT
00000c28: ISZERO
00000c29: PUSH2 0x0d09
00000c2c: JUMPI
00000c2d: DUP4
00000c2e: DUP2
00000c2f: PUSH1 0x05
00000c31: DUP2
00000c32: LT
00000c33: PUSH2 0x0c38
00000c36: JUMPI
00000c37: INVALID
00000c38: JUMPDEST
00000c39: PUSH1 0x20
00000c3b: MUL
00000c3c: ADD
00000c3d: CALLDATALOAD
00000c3e: PUSH2 0x0c46
00000c41: JUMPI
00000c42: PUSH2 0x0d01
00000c45: JUMP
00000c46: JUMPDEST
00000c47: PUSH1 0x00
00000c49: PUSH2 0x0c60
00000c4c: PUSH2 0x0c54
00000c4f: DUP4
00000c50: PUSH2 0x13f8
00000c53: JUMP
00000c54: JUMPDEST
00000c55: DUP7
00000c56: DUP5
00000c57: PUSH1 0x05
00000c59: DUP2
00000c5a: LT
00000c5b: PUSH2 0x055d
00000c5e: JUMPI
00000c5f: INVALID
00000c60: JUMPDEST
00000c61: SWAP1
00000c62: POP
00000c63: PUSH1 0x00
00000c65: DUP5
00000c66: DUP4
00000c67: PUSH1 0x01
00000c69: ADD
00000c6a: PUSH1 0x06
00000c6c: DUP2
00000c6d: LT
00000c6e: PUSH2 0x0c73
00000c71: JUMPI
00000c72: INVALID
00000c73: JUMPDEST
00000c74: PUSH1 0x20
00000c76: MUL
00000c77: ADD
00000c78: MLOAD
00000c79: SWAP1
00000c7a: POP
00000c7b: DUP1
00000c7c: DUP3
00000c7d: GT
00000c7e: ISZERO
00000c7f: PUSH2 0x0cb4
00000c82: JUMPI
00000c83: PUSH1 0x40
00000c85: MLOAD
00000c86: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000ca7: DUP2
00000ca8: MSTORE
00000ca9: PUSH1 0x04
00000cab: ADD
00000cac: PUSH2 0x06de
00000caf: SWAP1
00000cb0: PUSH2 0x2030
00000cb3: JUMP
00000cb4: JUMPDEST
00000cb5: PUSH2 0x0ccf
00000cb8: DUP3
00000cb9: DUP6
00000cba: DUP6
00000cbb: PUSH1 0x05
00000cbd: DUP2
00000cbe: LT
00000cbf: PUSH2 0x0cc4
00000cc2: JUMPI
00000cc3: INVALID
00000cc4: JUMPDEST
00000cc5: PUSH1 0x20
00000cc7: MUL
00000cc8: ADD
00000cc9: MLOAD
00000cca: SWAP1
00000ccb: PUSH2 0x18b5
00000cce: JUMP
00000ccf: JUMPDEST
00000cd0: DUP5
00000cd1: DUP5
00000cd2: PUSH1 0x05
00000cd4: DUP2
00000cd5: LT
00000cd6: PUSH2 0x0cdb
00000cd9: JUMPI
00000cda: INVALID
00000cdb: JUMPDEST
00000cdc: PUSH1 0x20
00000cde: MUL
00000cdf: ADD
00000ce0: MSTORE
00000ce1: PUSH2 0x0cea
00000ce4: DUP2
00000ce5: DUP4
00000ce6: PUSH2 0x18b5
00000ce9: JUMP
00000cea: JUMPDEST
00000ceb: DUP6
00000cec: DUP5
00000ced: PUSH1 0x01
00000cef: ADD
00000cf0: PUSH1 0x06
00000cf2: DUP2
00000cf3: LT
00000cf4: PUSH2 0x0cf9
00000cf7: JUMPI
00000cf8: INVALID
00000cf9: JUMPDEST
00000cfa: PUSH1 0x20
00000cfc: MUL
00000cfd: ADD
00000cfe: MSTORE
00000cff: POP
00000d00: POP
00000d01: JUMPDEST
00000d02: PUSH1 0x01
00000d04: ADD
00000d05: PUSH2 0x0c23
00000d08: JUMP
00000d09: JUMPDEST
00000d0a: POP
00000d0b: PUSH2 0x0d13
00000d0e: DUP3
00000d0f: PUSH2 0x18c7
00000d12: JUMP
00000d13: JUMPDEST
00000d14: CALLER
00000d15: PUSH1 0x00
00000d17: SWAP1
00000d18: DUP2
00000d19: MSTORE
00000d1a: PUSH1 0x13
00000d1c: PUSH1 0x20
00000d1e: MSTORE
00000d1f: PUSH1 0x40
00000d21: SWAP1
00000d22: KECCAK256
00000d23: SSTORE
00000d24: PUSH2 0x0d2c
00000d27: DUP2
00000d28: PUSH2 0x1a8a
00000d2b: JUMP
00000d2c: JUMPDEST
00000d2d: PUSH1 0x01
00000d2f: SSTORE
00000d30: PUSH1 0x00
00000d32: JUMPDEST
00000d33: PUSH1 0x05
00000d35: DUP2
00000d36: LT
00000d37: ISZERO
00000d38: PUSH2 0x0ec0
00000d3b: JUMPI
00000d3c: DUP4
00000d3d: DUP2
00000d3e: PUSH1 0x05
00000d40: DUP2
00000d41: LT
00000d42: PUSH2 0x0d47
00000d45: JUMPI
00000d46: INVALID
00000d47: JUMPDEST
00000d48: PUSH1 0x20
00000d4a: MUL
00000d4b: ADD
00000d4c: CALLDATALOAD
00000d4d: PUSH2 0x0d55
00000d50: JUMPI
00000d51: PUSH2 0x0eb8
00000d54: JUMP
00000d55: JUMPDEST
00000d56: PUSH1 0x0d
00000d58: DUP2
00000d59: PUSH1 0x05
00000d5b: DUP2
00000d5c: LT
00000d5d: PUSH2 0x0d62
00000d60: JUMPI
00000d61: INVALID
00000d62: JUMPDEST
00000d63: ADD
00000d64: SLOAD
00000d65: PUSH1 0x01
00000d67: PUSH1 0x01
00000d69: PUSH1 0xa0
00000d6b: SHL
00000d6c: SUB
00000d6d: AND
00000d6e: PUSH4 0x69328dec
00000d73: PUSH1 0x08
00000d75: DUP4
00000d76: PUSH1 0x05
00000d78: DUP2
00000d79: LT
00000d7a: PUSH2 0x0d7f
00000d7d: JUMPI
00000d7e: INVALID
00000d7f: JUMPDEST
00000d80: ADD
00000d81: SLOAD
00000d82: PUSH1 0x01
00000d84: PUSH1 0x01
00000d86: PUSH1 0xa0
00000d88: SHL
00000d89: SUB
00000d8a: AND
00000d8b: PUSH2 0x0e45
00000d8e: PUSH2 0x0da9
00000d91: DUP9
00000d92: DUP7
00000d93: PUSH1 0x05
00000d95: DUP2
00000d96: LT
00000d97: PUSH2 0x0d9c
00000d9a: JUMPI
00000d9b: INVALID
00000d9c: JUMPDEST
00000d9d: PUSH1 0x20
00000d9f: MUL
00000da0: ADD
00000da1: CALLDATALOAD
00000da2: PUSH1 0x02
00000da4: SLOAD
00000da5: PUSH2 0x1af6
00000da8: JUMP
00000da9: JUMPDEST
00000daa: PUSH1 0x06
00000dac: PUSH1 0x03
00000dae: DUP8
00000daf: PUSH1 0x05
00000db1: DUP2
00000db2: LT
00000db3: PUSH2 0x0db8
00000db6: JUMPI
00000db7: INVALID
00000db8: JUMPDEST
00000db9: ADD
00000dba: PUSH1 0x00
00000dbc: SWAP1
00000dbd: SLOAD
00000dbe: SWAP1
00000dbf: PUSH2 0x0100
00000dc2: EXP
00000dc3: SWAP1
00000dc4: DIV
00000dc5: PUSH1 0x01
00000dc7: PUSH1 0x01
00000dc9: PUSH1 0xa0
00000dcb: SHL
00000dcc: SUB
00000dcd: AND
00000dce: PUSH1 0x01
00000dd0: PUSH1 0x01
00000dd2: PUSH1 0xa0
00000dd4: SHL
00000dd5: SUB
00000dd6: AND
00000dd7: PUSH4 0x313ce567
00000ddc: PUSH1 0x40
00000dde: MLOAD
00000ddf: DUP2
00000de0: PUSH4 0xffffffff
00000de5: AND
00000de6: PUSH1 0xe0
00000de8: SHL
00000de9: DUP2
00000dea: MSTORE
00000deb: PUSH1 0x04
00000ded: ADD
00000dee: PUSH1 0x20
00000df0: PUSH1 0x40
00000df2: MLOAD
00000df3: DUP1
00000df4: DUP4
00000df5: SUB
00000df6: DUP2
00000df7: DUP7
00000df8: DUP1
00000df9: EXTCODESIZE
00000dfa: ISZERO
00000dfb: DUP1
00000dfc: ISZERO
00000dfd: PUSH2 0x0e05
00000e00: JUMPI
00000e01: PUSH1 0x00
00000e03: DUP1
00000e04: REVERT
00000e05: JUMPDEST
00000e06: POP
00000e07: GAS
00000e08: STATICCALL
00000e09: ISZERO
00000e0a: DUP1
00000e0b: ISZERO
00000e0c: PUSH2 0x0e19
00000e0f: JUMPI
00000e10: RETURNDATASIZE
00000e11: PUSH1 0x00
00000e13: DUP1
00000e14: RETURNDATACOPY
00000e15: RETURNDATASIZE
00000e16: PUSH1 0x00
00000e18: REVERT
00000e19: JUMPDEST
00000e1a: POP
00000e1b: POP
00000e1c: POP
00000e1d: POP
00000e1e: PUSH1 0x40
00000e20: MLOAD
00000e21: RETURNDATASIZE
00000e22: PUSH1 0x1f
00000e24: NOT
00000e25: PUSH1 0x1f
00000e27: DUP3
00000e28: ADD
00000e29: AND
00000e2a: DUP3
00000e2b: ADD
00000e2c: DUP1
00000e2d: PUSH1 0x40
00000e2f: MSTORE
00000e30: POP
00000e31: DUP2
00000e32: ADD
00000e33: SWAP1
00000e34: PUSH2 0x0e3d
00000e37: SWAP2
00000e38: SWAP1
00000e39: PUSH2 0x1ddb
00000e3c: JUMP
00000e3d: JUMPDEST
00000e3e: PUSH1 0xff
00000e40: AND
00000e41: PUSH2 0x1b11
00000e44: JUMP
00000e45: JUMPDEST
00000e46: CALLER
00000e47: PUSH1 0x40
00000e49: MLOAD
00000e4a: DUP5
00000e4b: PUSH4 0xffffffff
00000e50: AND
00000e51: PUSH1 0xe0
00000e53: SHL
00000e54: DUP2
00000e55: MSTORE
00000e56: PUSH1 0x04
00000e58: ADD
00000e59: PUSH2 0x0e64
00000e5c: SWAP4
00000e5d: SWAP3
00000e5e: SWAP2
00000e5f: SWAP1
00000e60: PUSH2 0x1eb3
00000e63: JUMP
00000e64: JUMPDEST
00000e65: PUSH1 0x20
00000e67: PUSH1 0x40
00000e69: MLOAD
00000e6a: DUP1
00000e6b: DUP4
00000e6c: SUB
00000e6d: DUP2
00000e6e: PUSH1 0x00
00000e70: DUP8
00000e71: DUP1
00000e72: EXTCODESIZE
00000e73: ISZERO
00000e74: DUP1
00000e75: ISZERO
00000e76: PUSH2 0x0e7e
00000e79: JUMPI
00000e7a: PUSH1 0x00
00000e7c: DUP1
00000e7d: REVERT
00000e7e: JUMPDEST
00000e7f: POP
00000e80: GAS
00000e81: CALL
00000e82: ISZERO
00000e83: DUP1
00000e84: ISZERO
00000e85: PUSH2 0x0e92
00000e88: JUMPI
00000e89: RETURNDATASIZE
00000e8a: PUSH1 0x00
00000e8c: DUP1
00000e8d: RETURNDATACOPY
00000e8e: RETURNDATASIZE
00000e8f: PUSH1 0x00
00000e91: REVERT
00000e92: JUMPDEST
00000e93: POP
00000e94: POP
00000e95: POP
00000e96: POP
00000e97: PUSH1 0x40
00000e99: MLOAD
00000e9a: RETURNDATASIZE
00000e9b: PUSH1 0x1f
00000e9d: NOT
00000e9e: PUSH1 0x1f
00000ea0: DUP3
00000ea1: ADD
00000ea2: AND
00000ea3: DUP3
00000ea4: ADD
00000ea5: DUP1
00000ea6: PUSH1 0x40
00000ea8: MSTORE
00000ea9: POP
00000eaa: DUP2
00000eab: ADD
00000eac: SWAP1
00000ead: PUSH2 0x0eb6
00000eb0: SWAP2
00000eb1: SWAP1
00000eb2: PUSH2 0x1dc3
00000eb5: JUMP
00000eb6: JUMPDEST
00000eb7: POP
00000eb8: JUMPDEST
00000eb9: PUSH1 0x01
00000ebb: ADD
00000ebc: PUSH2 0x0d32
00000ebf: JUMP
00000ec0: JUMPDEST
00000ec1: POP
00000ec2: PUSH1 0x40
00000ec4: DUP1
00000ec5: MLOAD
00000ec6: CALLER
00000ec7: SWAP2
00000ec8: PUSH32 0x7eeff8be585edc71336fb7c23449d95ce599eaa42a8af172412928d3bb22f848
00000ee9: SWAP2
00000eea: PUSH2 0x0f0b
00000eed: SWAP2
00000eee: DUP8
00000eef: CALLDATALOAD
00000ef0: SWAP2
00000ef1: PUSH1 0x20
00000ef3: DUP10
00000ef4: ADD
00000ef5: CALLDATALOAD
00000ef6: SWAP2
00000ef7: DUP10
00000ef8: ADD
00000ef9: CALLDATALOAD
00000efa: SWAP1
00000efb: PUSH1 0x60
00000efd: DUP11
00000efe: ADD
00000eff: CALLDATALOAD
00000f00: SWAP1
00000f01: PUSH1 0x80
00000f03: DUP12
00000f04: ADD
00000f05: CALLDATALOAD
00000f06: SWAP1
00000f07: PUSH2 0x210c
00000f0a: JUMP
00000f0b: JUMPDEST
00000f0c: PUSH1 0x40
00000f0e: MLOAD
00000f0f: DUP1
00000f10: SWAP2
00000f11: SUB
00000f12: SWAP1
00000f13: LOG2
00000f14: POP
00000f15: POP
00000f16: POP
00000f17: JUMP
00000f18: JUMPDEST
00000f19: PUSH1 0x02
00000f1b: SLOAD
00000f1c: DUP2
00000f1d: JUMP
00000f1e: JUMPDEST
00000f1f: PUSH1 0x00
00000f21: JUMPDEST
00000f22: PUSH1 0x05
00000f24: DUP2
00000f25: LT
00000f26: ISZERO
00000f27: PUSH2 0x0521
00000f2a: JUMPI
00000f2b: PUSH1 0x00
00000f2d: PUSH1 0x08
00000f2f: DUP3
00000f30: PUSH1 0x05
00000f32: DUP2
00000f33: LT
00000f34: PUSH2 0x0f39
00000f37: JUMPI
00000f38: INVALID
00000f39: JUMPDEST
00000f3a: ADD
00000f3b: SLOAD
00000f3c: PUSH1 0x40
00000f3e: MLOAD
00000f3f: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00000f60: DUP2
00000f61: MSTORE
00000f62: PUSH1 0x01
00000f64: PUSH1 0x01
00000f66: PUSH1 0xa0
00000f68: SHL
00000f69: SUB
00000f6a: SWAP1
00000f6b: SWAP2
00000f6c: AND
00000f6d: SWAP2
00000f6e: POP
00000f6f: PUSH1 0x00
00000f71: SWAP1
00000f72: DUP3
00000f73: SWAP1
00000f74: PUSH4 0x70a08231
00000f79: SWAP1
00000f7a: PUSH2 0x0f87
00000f7d: SWAP1
00000f7e: ADDRESS
00000f7f: SWAP1
00000f80: PUSH1 0x04
00000f82: ADD
00000f83: PUSH2 0x1e86
00000f86: JUMP
00000f87: JUMPDEST
00000f88: PUSH1 0x20
00000f8a: PUSH1 0x40
00000f8c: MLOAD
00000f8d: DUP1
00000f8e: DUP4
00000f8f: SUB
00000f90: DUP2
00000f91: DUP7
00000f92: DUP1
00000f93: EXTCODESIZE
00000f94: ISZERO
00000f95: DUP1
00000f96: ISZERO
00000f97: PUSH2 0x0f9f
00000f9a: JUMPI
00000f9b: PUSH1 0x00
00000f9d: DUP1
00000f9e: REVERT
00000f9f: JUMPDEST
00000fa0: POP
00000fa1: GAS
00000fa2: STATICCALL
00000fa3: ISZERO
00000fa4: DUP1
00000fa5: ISZERO
00000fa6: PUSH2 0x0fb3
00000fa9: JUMPI
00000faa: RETURNDATASIZE
00000fab: PUSH1 0x00
00000fad: DUP1
00000fae: RETURNDATACOPY
00000faf: RETURNDATASIZE
00000fb0: PUSH1 0x00
00000fb2: REVERT
00000fb3: JUMPDEST
00000fb4: POP
00000fb5: POP
00000fb6: POP
00000fb7: POP
00000fb8: PUSH1 0x40
00000fba: MLOAD
00000fbb: RETURNDATASIZE
00000fbc: PUSH1 0x1f
00000fbe: NOT
00000fbf: PUSH1 0x1f
00000fc1: DUP3
00000fc2: ADD
00000fc3: AND
00000fc4: DUP3
00000fc5: ADD
00000fc6: DUP1
00000fc7: PUSH1 0x40
00000fc9: MSTORE
00000fca: POP
00000fcb: DUP2
00000fcc: ADD
00000fcd: SWAP1
00000fce: PUSH2 0x0fd7
00000fd1: SWAP2
00000fd2: SWAP1
00000fd3: PUSH2 0x1dc3
00000fd6: JUMP
00000fd7: JUMPDEST
00000fd8: SWAP1
00000fd9: POP
00000fda: PUSH1 0x01
00000fdc: DUP2
00000fdd: GT
00000fde: PUSH2 0x0fe8
00000fe1: JUMPI
00000fe2: POP
00000fe3: POP
00000fe4: PUSH2 0x1150
00000fe7: JUMP
00000fe8: JUMPDEST
00000fe9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000100a: ADD
0000100b: PUSH1 0x01
0000100d: PUSH1 0x01
0000100f: PUSH1 0xa0
00001011: SHL
00001012: SUB
00001013: DUP3
00001014: AND
00001015: PUSH4 0x095ea7b3
0000101a: PUSH1 0x0d
0000101c: DUP6
0000101d: PUSH1 0x05
0000101f: DUP2
00001020: LT
00001021: PUSH2 0x1026
00001024: JUMPI
00001025: INVALID
00001026: JUMPDEST
00001027: ADD
00001028: SLOAD
00001029: PUSH1 0x40
0000102b: MLOAD
0000102c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000104d: PUSH1 0xe0
0000104f: DUP5
00001050: SWAP1
00001051: SHL
00001052: AND
00001053: DUP2
00001054: MSTORE
00001055: PUSH2 0x106c
00001058: SWAP2
00001059: PUSH1 0x01
0000105b: PUSH1 0x01
0000105d: PUSH1 0xa0
0000105f: SHL
00001060: SUB
00001061: AND
00001062: SWAP1
00001063: DUP6
00001064: SWAP1
00001065: PUSH1 0x04
00001067: ADD
00001068: PUSH2 0x1e9a
0000106b: JUMP
0000106c: JUMPDEST
0000106d: PUSH1 0x20
0000106f: PUSH1 0x40
00001071: MLOAD
00001072: DUP1
00001073: DUP4
00001074: SUB
00001075: DUP2
00001076: PUSH1 0x00
00001078: DUP8
00001079: DUP1
0000107a: EXTCODESIZE
0000107b: ISZERO
0000107c: DUP1
0000107d: ISZERO
0000107e: PUSH2 0x1086
00001081: JUMPI
00001082: PUSH1 0x00
00001084: DUP1
00001085: REVERT
00001086: JUMPDEST
00001087: POP
00001088: GAS
00001089: CALL
0000108a: ISZERO
0000108b: DUP1
0000108c: ISZERO
0000108d: PUSH2 0x109a
00001090: JUMPI
00001091: RETURNDATASIZE
00001092: PUSH1 0x00
00001094: DUP1
00001095: RETURNDATACOPY
00001096: RETURNDATASIZE
00001097: PUSH1 0x00
00001099: REVERT
0000109a: JUMPDEST
0000109b: POP
0000109c: POP
0000109d: POP
0000109e: POP
0000109f: PUSH1 0x40
000010a1: MLOAD
000010a2: RETURNDATASIZE
000010a3: PUSH1 0x1f
000010a5: NOT
000010a6: PUSH1 0x1f
000010a8: DUP3
000010a9: ADD
000010aa: AND
000010ab: DUP3
000010ac: ADD
000010ad: DUP1
000010ae: PUSH1 0x40
000010b0: MSTORE
000010b1: POP
000010b2: DUP2
000010b3: ADD
000010b4: SWAP1
000010b5: PUSH2 0x10be
000010b8: SWAP2
000010b9: SWAP1
000010ba: PUSH2 0x1ce2
000010bd: JUMP
000010be: JUMPDEST
000010bf: POP
000010c0: PUSH1 0x0d
000010c2: DUP4
000010c3: PUSH1 0x05
000010c5: DUP2
000010c6: LT
000010c7: PUSH2 0x10cc
000010ca: JUMPI
000010cb: INVALID
000010cc: JUMPDEST
000010cd: ADD
000010ce: SLOAD
000010cf: PUSH1 0x40
000010d1: MLOAD
000010d2: PUSH32 0xe8eda9df00000000000000000000000000000000000000000000000000000000
000010f3: DUP2
000010f4: MSTORE
000010f5: PUSH1 0x01
000010f7: PUSH1 0x01
000010f9: PUSH1 0xa0
000010fb: SHL
000010fc: SUB
000010fd: SWAP1
000010fe: SWAP2
000010ff: AND
00001100: SWAP1
00001101: PUSH4 0xe8eda9df
00001106: SWAP1
00001107: PUSH2 0x111b
0000110a: SWAP1
0000110b: DUP6
0000110c: SWAP1
0000110d: DUP6
0000110e: SWAP1
0000110f: ADDRESS
00001110: SWAP1
00001111: PUSH1 0x00
00001113: SWAP1
00001114: PUSH1 0x04
00001116: ADD
00001117: PUSH2 0x1ed6
0000111a: JUMP
0000111b: JUMPDEST
0000111c: PUSH1 0x00
0000111e: PUSH1 0x40
00001120: MLOAD
00001121: DUP1
00001122: DUP4
00001123: SUB
00001124: DUP2
00001125: PUSH1 0x00
00001127: DUP8
00001128: DUP1
00001129: EXTCODESIZE
0000112a: ISZERO
0000112b: DUP1
0000112c: ISZERO
0000112d: PUSH2 0x1135
00001130: JUMPI
00001131: PUSH1 0x00
00001133: DUP1
00001134: REVERT
00001135: JUMPDEST
00001136: POP
00001137: GAS
00001138: CALL
00001139: ISZERO
0000113a: DUP1
0000113b: ISZERO
0000113c: PUSH2 0x1149
0000113f: JUMPI
00001140: RETURNDATASIZE
00001141: PUSH1 0x00
00001143: DUP1
00001144: RETURNDATACOPY
00001145: RETURNDATASIZE
00001146: PUSH1 0x00
00001148: REVERT
00001149: JUMPDEST
0000114a: POP
0000114b: POP
0000114c: POP
0000114d: POP
0000114e: POP
0000114f: POP
00001150: JUMPDEST
00001151: PUSH1 0x01
00001153: ADD
00001154: PUSH2 0x0f21
00001157: JUMP
00001158: JUMPDEST
00001159: PUSH1 0x01
0000115b: PUSH1 0x01
0000115d: PUSH1 0xa0
0000115f: SHL
00001160: SUB
00001161: DUP3
00001162: AND
00001163: PUSH1 0x00
00001165: SWAP1
00001166: DUP2
00001167: MSTORE
00001168: PUSH1 0x13
0000116a: PUSH1 0x20
0000116c: SWAP1
0000116d: DUP2
0000116e: MSTORE
0000116f: PUSH1 0x40
00001171: DUP1
00001172: DUP4
00001173: KECCAK256
00001174: SLOAD
00001175: SWAP1
00001176: MLOAD
00001177: PUSH1 0xf0
00001179: SWAP2
0000117a: SWAP1
0000117b: SWAP2
0000117c: SHR
0000117d: SWAP2
0000117e: PUSH2 0x118b
00001181: SWAP2
00001182: DUP6
00001183: SWAP2
00001184: DUP5
00001185: SWAP2
00001186: ADD
00001187: PUSH2 0x1df7
0000118a: JUMP
0000118b: JUMPDEST
0000118c: PUSH1 0x40
0000118e: MLOAD
0000118f: PUSH1 0x20
00001191: DUP2
00001192: DUP4
00001193: SUB
00001194: SUB
00001195: DUP2
00001196: MSTORE
00001197: SWAP1
00001198: PUSH1 0x40
0000119a: MSTORE
0000119b: DUP1
0000119c: MLOAD
0000119d: SWAP1
0000119e: PUSH1 0x20
000011a0: ADD
000011a1: KECCAK256
000011a2: SWAP2
000011a3: POP
000011a4: POP
000011a5: SWAP3
000011a6: SWAP2
000011a7: POP
000011a8: POP
000011a9: JUMP
000011aa: JUMPDEST
000011ab: PUSH1 0x00
000011ad: SLOAD
000011ae: PUSH1 0x01
000011b0: PUSH1 0x01
000011b2: PUSH1 0xa0
000011b4: SHL
000011b5: SUB
000011b6: AND
000011b7: CALLER
000011b8: EQ
000011b9: PUSH2 0x11c1
000011bc: JUMPI
000011bd: PUSH1 0x00
000011bf: DUP1
000011c0: REVERT
000011c1: JUMPDEST
000011c2: PUSH1 0x01
000011c4: PUSH1 0x01
000011c6: PUSH1 0xa0
000011c8: SHL
000011c9: SUB
000011ca: DUP2
000011cb: AND
000011cc: PUSH2 0x11d4
000011cf: JUMPI
000011d0: PUSH1 0x00
000011d2: DUP1
000011d3: REVERT
000011d4: JUMPDEST
000011d5: PUSH1 0x00
000011d7: DUP1
000011d8: SLOAD
000011d9: PUSH1 0x40
000011db: MLOAD
000011dc: PUSH1 0x01
000011de: PUSH1 0x01
000011e0: PUSH1 0xa0
000011e2: SHL
000011e3: SUB
000011e4: DUP1
000011e5: DUP6
000011e6: AND
000011e7: SWAP4
000011e8: SWAP3
000011e9: AND
000011ea: SWAP2
000011eb: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
0000120c: SWAP2
0000120d: LOG3
0000120e: PUSH1 0x00
00001210: DUP1
00001211: SLOAD
00001212: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00001233: AND
00001234: PUSH1 0x01
00001236: PUSH1 0x01
00001238: PUSH1 0xa0
0000123a: SHL
0000123b: SUB
0000123c: SWAP3
0000123d: SWAP1
0000123e: SWAP3
0000123f: AND
00001240: SWAP2
00001241: SWAP1
00001242: SWAP2
00001243: OR
00001244: SWAP1
00001245: SSTORE
00001246: JUMP
00001247: JUMPDEST
00001248: PUSH1 0x00
0000124a: SLOAD
0000124b: PUSH1 0x01
0000124d: PUSH1 0x01
0000124f: PUSH1 0xa0
00001251: SHL
00001252: SUB
00001253: AND
00001254: CALLER
00001255: EQ
00001256: PUSH2 0x125e
00001259: JUMPI
0000125a: PUSH1 0x00
0000125c: DUP1
0000125d: REVERT
0000125e: JUMPDEST
0000125f: PUSH2 0x1266
00001262: PUSH2 0x1b51
00001265: JUMP
00001266: JUMPDEST
00001267: PUSH2 0x1271
0000126a: PUSH1 0x01
0000126c: SLOAD
0000126d: PUSH2 0x16aa
00001270: JUMP
00001271: JUMPDEST
00001272: SWAP1
00001273: POP
00001274: PUSH1 0x00
00001276: JUMPDEST
00001277: PUSH1 0x05
00001279: DUP2
0000127a: LT
0000127b: ISZERO
0000127c: PUSH2 0x13f3
0000127f: JUMPI
00001280: DUP3
00001281: DUP2
00001282: PUSH1 0x05
00001284: DUP2
00001285: LT
00001286: PUSH2 0x128b
00001289: JUMPI
0000128a: INVALID
0000128b: JUMPDEST
0000128c: PUSH1 0x20
0000128e: MUL
0000128f: ADD
00001290: CALLDATALOAD
00001291: PUSH2 0x1299
00001294: JUMPI
00001295: PUSH2 0x13eb
00001298: JUMP
00001299: JUMPDEST
0000129a: PUSH1 0x00
0000129c: PUSH2 0x12a4
0000129f: DUP3
000012a0: PUSH2 0x13f8
000012a3: JUMP
000012a4: JUMPDEST
000012a5: SWAP1
000012a6: POP
000012a7: PUSH1 0x00
000012a9: DUP4
000012aa: DUP4
000012ab: PUSH1 0x05
000012ad: DUP2
000012ae: LT
000012af: PUSH2 0x12b4
000012b2: JUMPI
000012b3: INVALID
000012b4: JUMPDEST
000012b5: PUSH1 0x20
000012b7: MUL
000012b8: ADD
000012b9: MLOAD
000012ba: PUSH2 0x12c2
000012bd: DUP5
000012be: PUSH2 0x1944
000012c1: JUMP
000012c2: JUMPDEST
000012c3: SUB
000012c4: SWAP1
000012c5: POP
000012c6: PUSH1 0x00
000012c8: PUSH2 0x12d1
000012cb: DUP3
000012cc: DUP5
000012cd: PUSH2 0x14b8
000012d0: JUMP
000012d1: JUMPDEST
000012d2: SWAP1
000012d3: POP
000012d4: DUP1
000012d5: DUP7
000012d6: DUP6
000012d7: PUSH1 0x05
000012d9: DUP2
000012da: LT
000012db: PUSH2 0x12e0
000012de: JUMPI
000012df: INVALID
000012e0: JUMPDEST
000012e1: PUSH1 0x20
000012e3: MUL
000012e4: ADD
000012e5: CALLDATALOAD
000012e6: GT
000012e7: ISZERO
000012e8: PUSH2 0x131d
000012eb: JUMPI
000012ec: PUSH1 0x40
000012ee: MLOAD
000012ef: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001310: DUP2
00001311: MSTORE
00001312: PUSH1 0x04
00001314: ADD
00001315: PUSH2 0x06de
00001318: SWAP1
00001319: PUSH2 0x2030
0000131c: JUMP
0000131d: JUMPDEST
0000131e: PUSH1 0x0d
00001320: DUP5
00001321: PUSH1 0x05
00001323: DUP2
00001324: LT
00001325: PUSH2 0x132a
00001328: JUMPI
00001329: INVALID
0000132a: JUMPDEST
0000132b: ADD
0000132c: SLOAD
0000132d: PUSH1 0x01
0000132f: PUSH1 0x01
00001331: PUSH1 0xa0
00001333: SHL
00001334: SUB
00001335: AND
00001336: PUSH4 0x69328dec
0000133b: PUSH1 0x08
0000133d: DUP7
0000133e: PUSH1 0x05
00001340: DUP2
00001341: LT
00001342: PUSH2 0x1347
00001345: JUMPI
00001346: INVALID
00001347: JUMPDEST
00001348: ADD
00001349: SLOAD
0000134a: PUSH1 0x01
0000134c: PUSH1 0x01
0000134e: PUSH1 0xa0
00001350: SHL
00001351: SUB
00001352: AND
00001353: PUSH2 0x1375
00001356: DUP10
00001357: DUP9
00001358: PUSH1 0x05
0000135a: DUP2
0000135b: LT
0000135c: PUSH2 0x1361
0000135f: JUMPI
00001360: INVALID
00001361: JUMPDEST
00001362: PUSH1 0x20
00001364: MUL
00001365: ADD
00001366: CALLDATALOAD
00001367: PUSH1 0x06
00001369: PUSH1 0x03
0000136b: DUP11
0000136c: PUSH1 0x05
0000136e: DUP2
0000136f: LT
00001370: PUSH2 0x0db8
00001373: JUMPI
00001374: INVALID
00001375: JUMPDEST
00001376: CALLER
00001377: PUSH1 0x40
00001379: MLOAD
0000137a: DUP5
0000137b: PUSH4 0xffffffff
00001380: AND
00001381: PUSH1 0xe0
00001383: SHL
00001384: DUP2
00001385: MSTORE
00001386: PUSH1 0x04
00001388: ADD
00001389: PUSH2 0x1394
0000138c: SWAP4
0000138d: SWAP3
0000138e: SWAP2
0000138f: SWAP1
00001390: PUSH2 0x1eb3
00001393: JUMP
00001394: JUMPDEST
00001395: PUSH1 0x20
00001397: PUSH1 0x40
00001399: MLOAD
0000139a: DUP1
0000139b: DUP4
0000139c: SUB
0000139d: DUP2
0000139e: PUSH1 0x00
000013a0: DUP8
000013a1: DUP1
000013a2: EXTCODESIZE
000013a3: ISZERO
000013a4: DUP1
000013a5: ISZERO
000013a6: PUSH2 0x13ae
000013a9: JUMPI
000013aa: PUSH1 0x00
000013ac: DUP1
000013ad: REVERT
000013ae: JUMPDEST
000013af: POP
000013b0: GAS
000013b1: CALL
000013b2: ISZERO
000013b3: DUP1
000013b4: ISZERO
000013b5: PUSH2 0x13c2
000013b8: JUMPI
000013b9: RETURNDATASIZE
000013ba: PUSH1 0x00
000013bc: DUP1
000013bd: RETURNDATACOPY
000013be: RETURNDATASIZE
000013bf: PUSH1 0x00
000013c1: REVERT
000013c2: JUMPDEST
000013c3: POP
000013c4: POP
000013c5: POP
000013c6: POP
000013c7: PUSH1 0x40
000013c9: MLOAD
000013ca: RETURNDATASIZE
000013cb: PUSH1 0x1f
000013cd: NOT
000013ce: PUSH1 0x1f
000013d0: DUP3
000013d1: ADD
000013d2: AND
000013d3: DUP3
000013d4: ADD
000013d5: DUP1
000013d6: PUSH1 0x40
000013d8: MSTORE
000013d9: POP
000013da: DUP2
000013db: ADD
000013dc: SWAP1
000013dd: PUSH2 0x13e6
000013e0: SWAP2
000013e1: SWAP1
000013e2: PUSH2 0x1dc3
000013e5: JUMP
000013e6: JUMPDEST
000013e7: POP
000013e8: POP
000013e9: POP
000013ea: POP
000013eb: JUMPDEST
000013ec: PUSH1 0x01
000013ee: ADD
000013ef: PUSH2 0x1276
000013f2: JUMP
000013f3: JUMPDEST
000013f4: POP
000013f5: POP
000013f6: POP
000013f7: JUMP
000013f8: JUMPDEST
000013f9: PUSH1 0x00
000013fb: PUSH1 0x0d
000013fd: DUP3
000013fe: PUSH1 0x05
00001400: DUP2
00001401: LT
00001402: PUSH2 0x1407
00001405: JUMPI
00001406: INVALID
00001407: JUMPDEST
00001408: ADD
00001409: SLOAD
0000140a: PUSH1 0x01
0000140c: PUSH1 0x01
0000140e: PUSH1 0xa0
00001410: SHL
00001411: SUB
00001412: AND
00001413: PUSH4 0xd15e0053
00001418: PUSH1 0x08
0000141a: DUP5
0000141b: PUSH1 0x05
0000141d: DUP2
0000141e: LT
0000141f: PUSH2 0x1424
00001422: JUMPI
00001423: INVALID
00001424: JUMPDEST
00001425: ADD
00001426: SLOAD
00001427: PUSH1 0x40
00001429: MLOAD
0000142a: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000144b: PUSH1 0xe0
0000144d: DUP5
0000144e: SWAP1
0000144f: SHL
00001450: AND
00001451: DUP2
00001452: MSTORE
00001453: PUSH2 0x1468
00001456: SWAP2
00001457: PUSH1 0x01
00001459: PUSH1 0x01
0000145b: PUSH1 0xa0
0000145d: SHL
0000145e: SUB
0000145f: AND
00001460: SWAP1
00001461: PUSH1 0x04
00001463: ADD
00001464: PUSH2 0x1e86
00001467: JUMP
00001468: JUMPDEST
00001469: PUSH1 0x20
0000146b: PUSH1 0x40
0000146d: MLOAD
0000146e: DUP1
0000146f: DUP4
00001470: SUB
00001471: DUP2
00001472: DUP7
00001473: DUP1
00001474: EXTCODESIZE
00001475: ISZERO
00001476: DUP1
00001477: ISZERO
00001478: PUSH2 0x1480
0000147b: JUMPI
0000147c: PUSH1 0x00
0000147e: DUP1
0000147f: REVERT
00001480: JUMPDEST
00001481: POP
00001482: GAS
00001483: STATICCALL
00001484: ISZERO
00001485: DUP1
00001486: ISZERO
00001487: PUSH2 0x1494
0000148a: JUMPI
0000148b: RETURNDATASIZE
0000148c: PUSH1 0x00
0000148e: DUP1
0000148f: RETURNDATACOPY
00001490: RETURNDATASIZE
00001491: PUSH1 0x00
00001493: REVERT
00001494: JUMPDEST
00001495: POP
00001496: POP
00001497: POP
00001498: POP
00001499: PUSH1 0x40
0000149b: MLOAD
0000149c: RETURNDATASIZE
0000149d: PUSH1 0x1f
0000149f: NOT
000014a0: PUSH1 0x1f
000014a2: DUP3
000014a3: ADD
000014a4: AND
000014a5: DUP3
000014a6: ADD
000014a7: DUP1
000014a8: PUSH1 0x40
000014aa: MSTORE
000014ab: POP
000014ac: DUP2
000014ad: ADD
000014ae: SWAP1
000014af: PUSH2 0x096f
000014b2: SWAP2
000014b3: SWAP1
000014b4: PUSH2 0x1dc3
000014b7: JUMP
000014b8: JUMPDEST
000014b9: PUSH1 0x00
000014bb: DUP3
000014bc: ISZERO
000014bd: DUP1
000014be: PUSH2 0x14c5
000014c1: JUMPI
000014c2: POP
000014c3: DUP2
000014c4: ISZERO
000014c5: JUMPDEST
000014c6: ISZERO
000014c7: PUSH2 0x14d2
000014ca: JUMPI
000014cb: POP
000014cc: PUSH1 0x00
000014ce: PUSH2 0x096f
000014d1: JUMP
000014d2: JUMPDEST
000014d3: DUP2
000014d4: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffe6268e1b017bfe18bffffff
000014f5: DUP2
000014f6: PUSH2 0x14fb
000014f9: JUMPI
000014fa: INVALID
000014fb: JUMPDEST
000014fc: DIV
000014fd: DUP4
000014fe: GT
000014ff: ISZERO
00001500: PUSH1 0x40
00001502: MLOAD
00001503: DUP1
00001504: PUSH1 0x40
00001506: ADD
00001507: PUSH1 0x40
00001509: MSTORE
0000150a: DUP1
0000150b: PUSH1 0x02
0000150d: DUP2
0000150e: MSTORE
0000150f: PUSH1 0x20
00001511: ADD
00001512: PUSH32 0x3438000000000000000000000000000000000000000000000000000000000000
00001533: DUP2
00001534: MSTORE
00001535: POP
00001536: SWAP1
00001537: PUSH2 0x156d
0000153a: JUMPI
0000153b: PUSH1 0x40
0000153d: MLOAD
0000153e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000155f: DUP2
00001560: MSTORE
00001561: PUSH1 0x04
00001563: ADD
00001564: PUSH2 0x06de
00001567: SWAP2
00001568: SWAP1
00001569: PUSH2 0x1fbf
0000156c: JUMP
0000156d: JUMPDEST
0000156e: POP
0000156f: PUSH12 0x033b2e3c9fd0803ce8000000
0000157c: DUP4
0000157d: DUP4
0000157e: MUL
0000157f: PUSH12 0x019d971e4fe8401e74000000
0000158c: ADD
0000158d: JUMPDEST
0000158e: DIV
0000158f: SWAP4
00001590: SWAP3
00001591: POP
00001592: POP
00001593: POP
00001594: JUMP
00001595: JUMPDEST
00001596: PUSH1 0x40
00001598: DUP1
00001599: MLOAD
0000159a: DUP1
0000159b: DUP3
0000159c: ADD
0000159d: SWAP1
0000159e: SWAP2
0000159f: MSTORE
000015a0: PUSH1 0x02
000015a2: DUP2
000015a3: MSTORE
000015a4: PUSH32 0x3530000000000000000000000000000000000000000000000000000000000000
000015c5: PUSH1 0x20
000015c7: DUP3
000015c8: ADD
000015c9: MSTORE
000015ca: PUSH1 0x00
000015cc: SWAP1
000015cd: DUP3
000015ce: PUSH2 0x1604
000015d1: JUMPI
000015d2: PUSH1 0x40
000015d4: MLOAD
000015d5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000015f6: DUP2
000015f7: MSTORE
000015f8: PUSH1 0x04
000015fa: ADD
000015fb: PUSH2 0x06de
000015fe: SWAP2
000015ff: SWAP1
00001600: PUSH2 0x1fbf
00001603: JUMP
00001604: JUMPDEST
00001605: POP
00001606: PUSH1 0x40
00001608: DUP1
00001609: MLOAD
0000160a: DUP1
0000160b: DUP3
0000160c: ADD
0000160d: SWAP1
0000160e: SWAP2
0000160f: MSTORE
00001610: PUSH1 0x02
00001612: DUP1
00001613: DUP3
00001614: MSTORE
00001615: PUSH32 0x3438000000000000000000000000000000000000000000000000000000000000
00001636: PUSH1 0x20
00001638: DUP4
00001639: ADD
0000163a: MSTORE
0000163b: DUP4
0000163c: DIV
0000163d: SWAP1
0000163e: PUSH12 0x033b2e3c9fd0803ce8000000
0000164b: DUP3
0000164c: NOT
0000164d: DIV
0000164e: DUP6
0000164f: GT
00001650: ISZERO
00001651: PUSH2 0x1687
00001654: JUMPI
00001655: PUSH1 0x40
00001657: MLOAD
00001658: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001679: DUP2
0000167a: MSTORE
0000167b: PUSH1 0x04
0000167d: ADD
0000167e: PUSH2 0x06de
00001681: SWAP2
00001682: SWAP1
00001683: PUSH2 0x1fbf
00001686: JUMP
00001687: JUMPDEST
00001688: POP
00001689: DUP3
0000168a: DUP2
0000168b: PUSH12 0x033b2e3c9fd0803ce8000000
00001698: DUP7
00001699: MUL
0000169a: ADD
0000169b: DUP2
0000169c: PUSH2 0x16a1
0000169f: JUMPI
000016a0: INVALID
000016a1: JUMPDEST
000016a2: DIV
000016a3: SWAP5
000016a4: SWAP4
000016a5: POP
000016a6: POP
000016a7: POP
000016a8: POP
000016a9: JUMP
000016aa: JUMPDEST
000016ab: PUSH2 0x16b2
000016ae: PUSH2 0x1b51
000016b1: JUMP
000016b2: JUMPDEST
000016b3: PUSH2 0x16ba
000016b6: PUSH2 0x1b51
000016b9: JUMP
000016ba: JUMPDEST
000016bb: POP
000016bc: POP
000016bd: PUSH1 0x40
000016bf: DUP1
000016c0: MLOAD
000016c1: PUSH1 0xa0
000016c3: DUP1
000016c4: DUP3
000016c5: ADD
000016c6: DUP4
000016c7: MSTORE
000016c8: PUSH1 0xd0
000016ca: DUP5
000016cb: SWAP1
000016cc: SHR
000016cd: DUP3
000016ce: MSTORE
000016cf: DUP4
000016d0: SWAP1
000016d1: SHR
000016d2: PUSH6 0xffffffffffff
000016d9: SWAP1
000016da: DUP2
000016db: AND
000016dc: PUSH1 0x20
000016de: DUP4
000016df: ADD
000016e0: MSTORE
000016e1: PUSH1 0x70
000016e3: DUP5
000016e4: SWAP1
000016e5: SHR
000016e6: DUP2
000016e7: AND
000016e8: DUP3
000016e9: DUP5
000016ea: ADD
000016eb: MSTORE
000016ec: SWAP2
000016ed: DUP4
000016ee: SWAP1
000016ef: SHR
000016f0: DUP3
000016f1: AND
000016f2: PUSH1 0x60
000016f4: DUP3
000016f5: ADD
000016f6: MSTORE
000016f7: SWAP2
000016f8: AND
000016f9: PUSH1 0x80
000016fb: DUP3
000016fc: ADD
000016fd: MSTORE
000016fe: SWAP1
000016ff: JUMP
00001700: JUMPDEST
00001701: PUSH1 0xf0
00001703: DUP2
00001704: SWAP1
00001705: SHR
00001706: DUP3
00001707: MSTORE
00001708: PUSH6 0xffffffffffff
0000170f: PUSH1 0xc0
00001711: DUP3
00001712: SWAP1
00001713: SHR
00001714: DUP2
00001715: AND
00001716: PUSH1 0x20
00001718: DUP5
00001719: ADD
0000171a: MSTORE
0000171b: PUSH1 0x90
0000171d: DUP3
0000171e: SWAP1
0000171f: SHR
00001720: DUP2
00001721: AND
00001722: PUSH1 0x40
00001724: DUP5
00001725: ADD
00001726: MSTORE
00001727: PUSH1 0x60
00001729: DUP3
0000172a: DUP2
0000172b: SHR
0000172c: DUP3
0000172d: AND
0000172e: SWAP1
0000172f: DUP5
00001730: ADD
00001731: MSTORE
00001732: PUSH1 0x30
00001734: DUP3
00001735: SWAP1
00001736: SHR
00001737: DUP2
00001738: AND
00001739: PUSH1 0x80
0000173b: DUP5
0000173c: ADD
0000173d: MSTORE
0000173e: AND
0000173f: PUSH1 0xa0
00001741: SWAP1
00001742: SWAP2
00001743: ADD
00001744: MSTORE
00001745: JUMP
00001746: JUMPDEST
00001747: DUP2
00001748: MLOAD
00001749: MLOAD
0000174a: PUSH1 0x00
0000174c: SGT
0000174d: DUP1
0000174e: ISZERO
0000174f: SWAP1
00001750: PUSH2 0x175f
00001753: JUMPI
00001754: POP
00001755: DUP2
00001756: MLOAD
00001757: PUSH1 0x20
00001759: ADD
0000175a: MLOAD
0000175b: PUSH1 0x00
0000175d: SGT
0000175e: ISZERO
0000175f: JUMPDEST
00001760: DUP1
00001761: ISZERO
00001762: PUSH2 0x1771
00001765: JUMPI
00001766: POP
00001767: DUP2
00001768: MLOAD
00001769: PUSH1 0x40
0000176b: ADD
0000176c: MLOAD
0000176d: PUSH1 0x00
0000176f: SGT
00001770: ISZERO
00001771: JUMPDEST
00001772: DUP1
00001773: ISZERO
00001774: PUSH2 0x1783
00001777: JUMPI
00001778: POP
00001779: DUP2
0000177a: MLOAD
0000177b: PUSH1 0x60
0000177d: ADD
0000177e: MLOAD
0000177f: PUSH1 0x00
00001781: SGT
00001782: ISZERO
00001783: JUMPDEST
00001784: DUP1
00001785: ISZERO
00001786: PUSH2 0x1795
00001789: JUMPI
0000178a: POP
0000178b: DUP2
0000178c: MLOAD
0000178d: PUSH1 0x80
0000178f: ADD
00001790: MLOAD
00001791: PUSH1 0x00
00001793: SGT
00001794: ISZERO
00001795: JUMPDEST
00001796: ISZERO
00001797: PUSH2 0x179f
0000179a: JUMPI
0000179b: PUSH2 0x18a4
0000179e: JUMP
0000179f: JUMPDEST
000017a0: DUP2
000017a1: MLOAD
000017a2: PUSH1 0x40
000017a4: MLOAD
000017a5: PUSH1 0x00
000017a7: SWAP2
000017a8: PUSH2 0x17b5
000017ab: SWAP2
000017ac: DUP5
000017ad: SWAP1
000017ae: PUSH1 0x20
000017b0: ADD
000017b1: PUSH2 0x1e30
000017b4: JUMP
000017b5: JUMPDEST
000017b6: PUSH1 0x40
000017b8: MLOAD
000017b9: PUSH1 0x20
000017bb: DUP2
000017bc: DUP4
000017bd: SUB
000017be: SUB
000017bf: DUP2
000017c0: MSTORE
000017c1: SWAP1
000017c2: PUSH1 0x40
000017c4: MSTORE
000017c5: DUP1
000017c6: MLOAD
000017c7: SWAP1
000017c8: PUSH1 0x20
000017ca: ADD
000017cb: KECCAK256
000017cc: SWAP1
000017cd: POP
000017ce: PUSH1 0x00
000017d0: DUP2
000017d1: PUSH1 0x40
000017d3: MLOAD
000017d4: PUSH1 0x20
000017d6: ADD
000017d7: PUSH2 0x17e0
000017da: SWAP2
000017db: SWAP1
000017dc: PUSH2 0x1e55
000017df: JUMP
000017e0: JUMPDEST
000017e1: PUSH1 0x40
000017e3: MLOAD
000017e4: PUSH1 0x20
000017e6: DUP2
000017e7: DUP4
000017e8: SUB
000017e9: SUB
000017ea: DUP2
000017eb: MSTORE
000017ec: SWAP1
000017ed: PUSH1 0x40
000017ef: MSTORE
000017f0: DUP1
000017f1: MLOAD
000017f2: SWAP1
000017f3: PUSH1 0x20
000017f5: ADD
000017f6: KECCAK256
000017f7: SWAP1
000017f8: POP
000017f9: DUP4
000017fa: PUSH1 0x80
000017fc: ADD
000017fd: MLOAD
000017fe: PUSH1 0x01
00001800: PUSH1 0x01
00001802: PUSH1 0xa0
00001804: SHL
00001805: SUB
00001806: AND
00001807: PUSH1 0x01
00001809: DUP3
0000180a: DUP7
0000180b: PUSH1 0x60
0000180d: ADD
0000180e: MLOAD
0000180f: DUP8
00001810: PUSH1 0x20
00001812: ADD
00001813: MLOAD
00001814: DUP9
00001815: PUSH1 0x40
00001817: ADD
00001818: MLOAD
00001819: PUSH1 0x40
0000181b: MLOAD
0000181c: PUSH1 0x00
0000181e: DUP2
0000181f: MSTORE
00001820: PUSH1 0x20
00001822: ADD
00001823: PUSH1 0x40
00001825: MSTORE
00001826: PUSH1 0x40
00001828: MLOAD
00001829: PUSH2 0x1835
0000182c: SWAP5
0000182d: SWAP4
0000182e: SWAP3
0000182f: SWAP2
00001830: SWAP1
00001831: PUSH2 0x1fa1
00001834: JUMP
00001835: JUMPDEST
00001836: PUSH1 0x20
00001838: PUSH1 0x40
0000183a: MLOAD
0000183b: PUSH1 0x20
0000183d: DUP2
0000183e: SUB
0000183f: SWAP1
00001840: DUP1
00001841: DUP5
00001842: SUB
00001843: SWAP1
00001844: DUP6
00001845: GAS
00001846: STATICCALL
00001847: ISZERO
00001848: DUP1
00001849: ISZERO
0000184a: PUSH2 0x1857
0000184d: JUMPI
0000184e: RETURNDATASIZE
0000184f: PUSH1 0x00
00001851: DUP1
00001852: RETURNDATACOPY
00001853: RETURNDATASIZE
00001854: PUSH1 0x00
00001856: REVERT
00001857: JUMPDEST
00001858: POP
00001859: POP
0000185a: POP
0000185b: PUSH1 0x20
0000185d: PUSH1 0x40
0000185f: MLOAD
00001860: SUB
00001861: MLOAD
00001862: PUSH1 0x01
00001864: PUSH1 0x01
00001866: PUSH1 0xa0
00001868: SHL
00001869: SUB
0000186a: AND
0000186b: EQ
0000186c: PUSH2 0x18a1
0000186f: JUMPI
00001870: PUSH1 0x40
00001872: MLOAD
00001873: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001894: DUP2
00001895: MSTORE
00001896: PUSH1 0x04
00001898: ADD
00001899: PUSH2 0x06de
0000189c: SWAP1
0000189d: PUSH2 0x209e
000018a0: JUMP
000018a1: JUMPDEST
000018a2: POP
000018a3: POP
000018a4: JUMPDEST
000018a5: POP
000018a6: POP
000018a7: JUMP
000018a8: JUMPDEST
000018a9: DUP2
000018aa: DUP2
000018ab: ADD
000018ac: DUP3
000018ad: DUP2
000018ae: LT
000018af: ISZERO
000018b0: PUSH2 0x096f
000018b3: JUMPI
000018b4: INVALID
000018b5: JUMPDEST
000018b6: PUSH1 0x00
000018b8: DUP3
000018b9: DUP3
000018ba: GT
000018bb: ISZERO
000018bc: PUSH2 0x18c1
000018bf: JUMPI
000018c0: INVALID
000018c1: JUMPDEST
000018c2: POP
000018c3: SWAP1
000018c4: SUB
000018c5: SWAP1
000018c6: JUMP
000018c7: JUMPDEST
000018c8: PUSH1 0x00
000018ca: DUP2
000018cb: PUSH1 0x05
000018cd: PUSH1 0x20
000018cf: MUL
000018d0: ADD
000018d1: MLOAD
000018d2: PUSH6 0xffffffffffff
000018d9: AND
000018da: PUSH1 0x30
000018dc: DUP4
000018dd: PUSH1 0x04
000018df: PUSH1 0x20
000018e1: MUL
000018e2: ADD
000018e3: MLOAD
000018e4: PUSH6 0xffffffffffff
000018eb: AND
000018ec: SWAP1
000018ed: SHL
000018ee: PUSH1 0x60
000018f0: DUP5
000018f1: PUSH1 0x03
000018f3: PUSH1 0x20
000018f5: MUL
000018f6: ADD
000018f7: MLOAD
000018f8: PUSH6 0xffffffffffff
000018ff: AND
00001900: SWAP1
00001901: SHL
00001902: PUSH1 0x90
00001904: DUP6
00001905: PUSH1 0x02
00001907: PUSH1 0x20
00001909: MUL
0000190a: ADD
0000190b: MLOAD
0000190c: PUSH6 0xffffffffffff
00001913: AND
00001914: SWAP1
00001915: SHL
00001916: PUSH1 0xc0
00001918: DUP7
00001919: PUSH1 0x01
0000191b: PUSH1 0x20
0000191d: MUL
0000191e: ADD
0000191f: MLOAD
00001920: PUSH6 0xffffffffffff
00001927: AND
00001928: SWAP1
00001929: SHL
0000192a: PUSH1 0xf0
0000192c: DUP8
0000192d: PUSH1 0x00
0000192f: PUSH1 0x20
00001931: MUL
00001932: ADD
00001933: MLOAD
00001934: PUSH2 0xffff
00001937: AND
00001938: SWAP1
00001939: SHL
0000193a: OR
0000193b: OR
0000193c: OR
0000193d: OR
0000193e: OR
0000193f: SWAP3
00001940: SWAP2
00001941: POP
00001942: POP
00001943: JUMP
00001944: JUMPDEST
00001945: PUSH1 0x00
00001947: PUSH2 0x096f
0000194a: PUSH1 0x03
0000194c: DUP4
0000194d: PUSH1 0x05
0000194f: DUP2
00001950: LT
00001951: PUSH2 0x1956
00001954: JUMPI
00001955: INVALID
00001956: JUMPDEST
00001957: ADD
00001958: SLOAD
00001959: PUSH1 0x40
0000195b: MLOAD
0000195c: PUSH32 0x1da24f3e00000000000000000000000000000000000000000000000000000000
0000197d: DUP2
0000197e: MSTORE
0000197f: PUSH1 0x01
00001981: PUSH1 0x01
00001983: PUSH1 0xa0
00001985: SHL
00001986: SUB
00001987: SWAP1
00001988: SWAP2
00001989: AND
0000198a: SWAP1
0000198b: PUSH4 0x1da24f3e
00001990: SWAP1
00001991: PUSH2 0x199e
00001994: SWAP1
00001995: ADDRESS
00001996: SWAP1
00001997: PUSH1 0x04
00001999: ADD
0000199a: PUSH2 0x1e86
0000199d: JUMP
0000199e: JUMPDEST
0000199f: PUSH1 0x20
000019a1: PUSH1 0x40
000019a3: MLOAD
000019a4: DUP1
000019a5: DUP4
000019a6: SUB
000019a7: DUP2
000019a8: DUP7
000019a9: DUP1
000019aa: EXTCODESIZE
000019ab: ISZERO
000019ac: DUP1
000019ad: ISZERO
000019ae: PUSH2 0x19b6
000019b1: JUMPI
000019b2: PUSH1 0x00
000019b4: DUP1
000019b5: REVERT
000019b6: JUMPDEST
000019b7: POP
000019b8: GAS
000019b9: STATICCALL
000019ba: ISZERO
000019bb: DUP1
000019bc: ISZERO
000019bd: PUSH2 0x19ca
000019c0: JUMPI
000019c1: RETURNDATASIZE
000019c2: PUSH1 0x00
000019c4: DUP1
000019c5: RETURNDATACOPY
000019c6: RETURNDATASIZE
000019c7: PUSH1 0x00
000019c9: REVERT
000019ca: JUMPDEST
000019cb: POP
000019cc: POP
000019cd: POP
000019ce: POP
000019cf: PUSH1 0x40
000019d1: MLOAD
000019d2: RETURNDATASIZE
000019d3: PUSH1 0x1f
000019d5: NOT
000019d6: PUSH1 0x1f
000019d8: DUP3
000019d9: ADD
000019da: AND
000019db: DUP3
000019dc: ADD
000019dd: DUP1
000019de: PUSH1 0x40
000019e0: MSTORE
000019e1: POP
000019e2: DUP2
000019e3: ADD
000019e4: SWAP1
000019e5: PUSH2 0x19ee
000019e8: SWAP2
000019e9: SWAP1
000019ea: PUSH2 0x1dc3
000019ed: JUMP
000019ee: JUMPDEST
000019ef: PUSH1 0x03
000019f1: DUP5
000019f2: PUSH1 0x05
000019f4: DUP2
000019f5: LT
000019f6: PUSH2 0x19fb
000019f9: JUMPI
000019fa: INVALID
000019fb: JUMPDEST
000019fc: ADD
000019fd: PUSH1 0x00
000019ff: SWAP1
00001a00: SLOAD
00001a01: SWAP1
00001a02: PUSH2 0x0100
00001a05: EXP
00001a06: SWAP1
00001a07: DIV
00001a08: PUSH1 0x01
00001a0a: PUSH1 0x01
00001a0c: PUSH1 0xa0
00001a0e: SHL
00001a0f: SUB
00001a10: AND
00001a11: PUSH1 0x01
00001a13: PUSH1 0x01
00001a15: PUSH1 0xa0
00001a17: SHL
00001a18: SUB
00001a19: AND
00001a1a: PUSH4 0x313ce567
00001a1f: PUSH1 0x40
00001a21: MLOAD
00001a22: DUP2
00001a23: PUSH4 0xffffffff
00001a28: AND
00001a29: PUSH1 0xe0
00001a2b: SHL
00001a2c: DUP2
00001a2d: MSTORE
00001a2e: PUSH1 0x04
00001a30: ADD
00001a31: PUSH1 0x20
00001a33: PUSH1 0x40
00001a35: MLOAD
00001a36: DUP1
00001a37: DUP4
00001a38: SUB
00001a39: DUP2
00001a3a: DUP7
00001a3b: DUP1
00001a3c: EXTCODESIZE
00001a3d: ISZERO
00001a3e: DUP1
00001a3f: ISZERO
00001a40: PUSH2 0x1a48
00001a43: JUMPI
00001a44: PUSH1 0x00
00001a46: DUP1
00001a47: REVERT
00001a48: JUMPDEST
00001a49: POP
00001a4a: GAS
00001a4b: STATICCALL
00001a4c: ISZERO
00001a4d: DUP1
00001a4e: ISZERO
00001a4f: PUSH2 0x1a5c
00001a52: JUMPI
00001a53: RETURNDATASIZE
00001a54: PUSH1 0x00
00001a56: DUP1
00001a57: RETURNDATACOPY
00001a58: RETURNDATASIZE
00001a59: PUSH1 0x00
00001a5b: REVERT
00001a5c: JUMPDEST
00001a5d: POP
00001a5e: POP
00001a5f: POP
00001a60: POP
00001a61: PUSH1 0x40
00001a63: MLOAD
00001a64: RETURNDATASIZE
00001a65: PUSH1 0x1f
00001a67: NOT
00001a68: PUSH1 0x1f
00001a6a: DUP3
00001a6b: ADD
00001a6c: AND
00001a6d: DUP3
00001a6e: ADD
00001a6f: DUP1
00001a70: PUSH1 0x40
00001a72: MSTORE
00001a73: POP
00001a74: DUP2
00001a75: ADD
00001a76: SWAP1
00001a77: PUSH2 0x1a80
00001a7a: SWAP2
00001a7b: SWAP1
00001a7c: PUSH2 0x1ddb
00001a7f: JUMP
00001a80: JUMPDEST
00001a81: PUSH1 0xff
00001a83: AND
00001a84: PUSH1 0x06
00001a86: PUSH2 0x1b11
00001a89: JUMP
00001a8a: JUMPDEST
00001a8b: PUSH1 0x00
00001a8d: DUP2
00001a8e: PUSH1 0x04
00001a90: PUSH1 0x20
00001a92: MUL
00001a93: ADD
00001a94: MLOAD
00001a95: PUSH6 0xffffffffffff
00001a9c: AND
00001a9d: PUSH1 0x40
00001a9f: DUP4
00001aa0: PUSH1 0x03
00001aa2: PUSH1 0x20
00001aa4: MUL
00001aa5: ADD
00001aa6: MLOAD
00001aa7: PUSH6 0xffffffffffff
00001aae: AND
00001aaf: SWAP1
00001ab0: SHL
00001ab1: PUSH1 0x70
00001ab3: DUP5
00001ab4: PUSH1 0x02
00001ab6: PUSH1 0x20
00001ab8: MUL
00001ab9: ADD
00001aba: MLOAD
00001abb: PUSH6 0xffffffffffff
00001ac2: AND
00001ac3: SWAP1
00001ac4: SHL
00001ac5: PUSH1 0xa0
00001ac7: DUP6
00001ac8: PUSH1 0x01
00001aca: PUSH1 0x20
00001acc: MUL
00001acd: ADD
00001ace: MLOAD
00001acf: PUSH6 0xffffffffffff
00001ad6: AND
00001ad7: SWAP1
00001ad8: SHL
00001ad9: PUSH1 0xd0
00001adb: DUP7
00001adc: PUSH1 0x00
00001ade: PUSH1 0x20
00001ae0: MUL
00001ae1: ADD
00001ae2: MLOAD
00001ae3: PUSH6 0xffffffffffff
00001aea: AND
00001aeb: SWAP1
00001aec: SHL
00001aed: OR
00001aee: OR
00001aef: OR
00001af0: OR
00001af1: SWAP3
00001af2: SWAP2
00001af3: POP
00001af4: POP
00001af5: JUMP
00001af6: JUMPDEST
00001af7: PUSH1 0x00
00001af9: DUP2
00001afa: PUSH2 0x1b04
00001afd: JUMPI
00001afe: POP
00001aff: DUP2
00001b00: PUSH2 0x096f
00001b03: JUMP
00001b04: JUMPDEST
00001b05: PUSH2 0x2710
00001b08: DUP3
00001b09: DUP2
00001b0a: SUB
00001b0b: DUP5
00001b0c: MUL
00001b0d: PUSH2 0x158d
00001b10: JUMP
00001b11: JUMPDEST
00001b12: PUSH1 0x00
00001b14: DUP2
00001b15: DUP4
00001b16: EQ
00001b17: ISZERO
00001b18: PUSH2 0x1b22
00001b1b: JUMPI
00001b1c: POP
00001b1d: DUP3
00001b1e: PUSH2 0x1b4a
00001b21: JUMP
00001b22: JUMPDEST
00001b23: DUP2
00001b24: DUP4
00001b25: LT
00001b26: ISZERO
00001b27: PUSH2 0x1b38
00001b2a: JUMPI
00001b2b: POP
00001b2c: DUP2
00001b2d: DUP2
00001b2e: SUB
00001b2f: PUSH1 0x0a
00001b31: EXP
00001b32: DUP4
00001b33: MUL
00001b34: PUSH2 0x1b4a
00001b37: JUMP
00001b38: JUMPDEST
00001b39: DUP2
00001b3a: DUP4
00001b3b: SUB
00001b3c: PUSH1 0x0a
00001b3e: EXP
00001b3f: DUP5
00001b40: DUP2
00001b41: PUSH2 0x1b46
00001b44: JUMPI
00001b45: INVALID
00001b46: JUMPDEST
00001b47: DIV
00001b48: SWAP1
00001b49: POP
00001b4a: JUMPDEST
00001b4b: SWAP4
00001b4c: SWAP3
00001b4d: POP
00001b4e: POP
00001b4f: POP
00001b50: JUMP
00001b51: JUMPDEST
00001b52: PUSH1 0x40
00001b54: MLOAD
00001b55: DUP1
00001b56: PUSH1 0xa0
00001b58: ADD
00001b59: PUSH1 0x40
00001b5b: MSTORE
00001b5c: DUP1
00001b5d: PUSH1 0x05
00001b5f: SWAP1
00001b60: PUSH1 0x20
00001b62: DUP3
00001b63: MUL
00001b64: DUP1
00001b65: CALLDATASIZE
00001b66: DUP4
00001b67: CALLDATACOPY
00001b68: POP
00001b69: SWAP2
00001b6a: SWAP3
00001b6b: SWAP2
00001b6c: POP
00001b6d: POP
00001b6e: JUMP
00001b6f: JUMPDEST
00001b70: PUSH1 0x40
00001b72: MLOAD
00001b73: DUP1
00001b74: PUSH1 0xc0
00001b76: ADD
00001b77: PUSH1 0x40
00001b79: MSTORE
00001b7a: DUP1
00001b7b: PUSH1 0x06
00001b7d: SWAP1
00001b7e: PUSH1 0x20
00001b80: DUP3
00001b81: MUL
00001b82: DUP1
00001b83: CALLDATASIZE
00001b84: DUP4
00001b85: CALLDATACOPY
00001b86: POP
00001b87: SWAP2
00001b88: SWAP3
00001b89: SWAP2
00001b8a: POP
00001b8b: POP
00001b8c: JUMP
00001b8d: JUMPDEST
00001b8e: PUSH1 0x40
00001b90: MLOAD
00001b91: DUP1
00001b92: PUSH1 0xa0
00001b94: ADD
00001b95: PUSH1 0x40
00001b97: MSTORE
00001b98: DUP1
00001b99: PUSH2 0x1ba0
00001b9c: PUSH2 0x1b51
00001b9f: JUMP
00001ba0: JUMPDEST
00001ba1: DUP2
00001ba2: MSTORE
00001ba3: PUSH1 0x00
00001ba5: PUSH1 0x20
00001ba7: DUP3
00001ba8: ADD
00001ba9: DUP2
00001baa: SWAP1
00001bab: MSTORE
00001bac: PUSH1 0x40
00001bae: DUP3
00001baf: ADD
00001bb0: DUP2
00001bb1: SWAP1
00001bb2: MSTORE
00001bb3: PUSH1 0x60
00001bb5: DUP3
00001bb6: ADD
00001bb7: DUP2
00001bb8: SWAP1
00001bb9: MSTORE
00001bba: PUSH1 0x80
00001bbc: SWAP1
00001bbd: SWAP2
00001bbe: ADD
00001bbf: MSTORE
00001bc0: SWAP1
00001bc1: JUMP
00001bc2: JUMPDEST
00001bc3: DUP1
00001bc4: CALLDATALOAD
00001bc5: PUSH2 0x096f
00001bc8: DUP2
00001bc9: PUSH2 0x2156
00001bcc: JUMP
00001bcd: JUMPDEST
00001bce: DUP1
00001bcf: PUSH1 0xa0
00001bd1: DUP2
00001bd2: ADD
00001bd3: DUP4
00001bd4: LT
00001bd5: ISZERO
00001bd6: PUSH2 0x096f
00001bd9: JUMPI
00001bda: PUSH1 0x00
00001bdc: DUP1
00001bdd: REVERT
00001bde: JUMPDEST
00001bdf: DUP1
00001be0: CALLDATALOAD
00001be1: PUSH2 0x096f
00001be4: DUP2
00001be5: PUSH2 0x216b
00001be8: JUMP
00001be9: JUMPDEST
00001bea: PUSH1 0x00
00001bec: PUSH1 0x20
00001bee: DUP3
00001bef: DUP5
00001bf0: SUB
00001bf1: SLT
00001bf2: ISZERO
00001bf3: PUSH2 0x1bfa
00001bf6: JUMPI
00001bf7: DUP1
00001bf8: DUP2
00001bf9: REVERT
00001bfa: JUMPDEST
00001bfb: DUP2
00001bfc: CALLDATALOAD
00001bfd: PUSH2 0x1b4a
00001c00: DUP2
00001c01: PUSH2 0x2156
00001c04: JUMP
00001c05: JUMPDEST
00001c06: PUSH1 0x00
00001c08: PUSH1 0x20
00001c0a: DUP3
00001c0b: DUP5
00001c0c: SUB
00001c0d: SLT
00001c0e: ISZERO
00001c0f: PUSH2 0x1c16
00001c12: JUMPI
00001c13: DUP1
00001c14: DUP2
00001c15: REVERT
00001c16: JUMPDEST
00001c17: DUP2
00001c18: MLOAD
00001c19: PUSH2 0x1b4a
00001c1c: DUP2
00001c1d: PUSH2 0x2156
00001c20: JUMP
00001c21: JUMPDEST
00001c22: PUSH1 0x00
00001c24: DUP1
00001c25: PUSH1 0xc0
00001c27: DUP4
00001c28: DUP6
00001c29: SUB
00001c2a: SLT
00001c2b: ISZERO
00001c2c: PUSH2 0x1c33
00001c2f: JUMPI
00001c30: DUP1
00001c31: DUP2
00001c32: REVERT
00001c33: JUMPDEST
00001c34: DUP3
00001c35: CALLDATALOAD
00001c36: PUSH2 0x1c3e
00001c39: DUP2
00001c3a: PUSH2 0x2156
00001c3d: JUMP
00001c3e: JUMPDEST
00001c3f: SWAP2
00001c40: POP
00001c41: PUSH2 0x1c4d
00001c44: DUP5
00001c45: PUSH1 0x20
00001c47: DUP6
00001c48: ADD
00001c49: PUSH2 0x1bcd
00001c4c: JUMP
00001c4d: JUMPDEST
00001c4e: SWAP1
00001c4f: POP
00001c50: SWAP3
00001c51: POP
00001c52: SWAP3
00001c53: SWAP1
00001c54: POP
00001c55: JUMP
00001c56: JUMPDEST
00001c57: PUSH1 0x00
00001c59: DUP1
00001c5a: PUSH1 0x20
00001c5c: DUP4
00001c5d: DUP6
00001c5e: SUB
00001c5f: SLT
00001c60: ISZERO
00001c61: PUSH2 0x1c68
00001c64: JUMPI
00001c65: DUP2
00001c66: DUP3
00001c67: REVERT
00001c68: JUMPDEST
00001c69: DUP3
00001c6a: CALLDATALOAD
00001c6b: PUSH8 0xffffffffffffffff
00001c74: DUP1
00001c75: DUP3
00001c76: GT
00001c77: ISZERO
00001c78: PUSH2 0x1c7f
00001c7b: JUMPI
00001c7c: DUP4
00001c7d: DUP5
00001c7e: REVERT
00001c7f: JUMPDEST
00001c80: DUP2
00001c81: DUP6
00001c82: ADD
00001c83: SWAP2
00001c84: POP
00001c85: DUP6
00001c86: PUSH1 0x1f
00001c88: DUP4
00001c89: ADD
00001c8a: SLT
00001c8b: PUSH2 0x1c92
00001c8e: JUMPI
00001c8f: DUP4
00001c90: DUP5
00001c91: REVERT
00001c92: JUMPDEST
00001c93: DUP2
00001c94: CALLDATALOAD
00001c95: DUP2
00001c96: DUP2
00001c97: GT
00001c98: ISZERO
00001c99: PUSH2 0x1ca0
00001c9c: JUMPI
00001c9d: DUP5
00001c9e: DUP6
00001c9f: REVERT
00001ca0: JUMPDEST
00001ca1: DUP7
00001ca2: PUSH1 0x20
00001ca4: PUSH2 0x0120
00001ca7: DUP4
00001ca8: MUL
00001ca9: DUP6
00001caa: ADD
00001cab: ADD
00001cac: GT
00001cad: ISZERO
00001cae: PUSH2 0x1cb5
00001cb1: JUMPI
00001cb2: DUP5
00001cb3: DUP6
00001cb4: REVERT
00001cb5: JUMPDEST
00001cb6: PUSH1 0x20
00001cb8: SWAP3
00001cb9: SWAP1
00001cba: SWAP3
00001cbb: ADD
00001cbc: SWAP7
00001cbd: SWAP2
00001cbe: SWAP6
00001cbf: POP
00001cc0: SWAP1
00001cc1: SWAP4
00001cc2: POP
00001cc3: POP
00001cc4: POP
00001cc5: POP
00001cc6: JUMP
00001cc7: JUMPDEST
00001cc8: PUSH1 0x00
00001cca: PUSH1 0xa0
00001ccc: DUP3
00001ccd: DUP5
00001cce: SUB
00001ccf: SLT
00001cd0: ISZERO
00001cd1: PUSH2 0x1cd8
00001cd4: JUMPI
00001cd5: DUP1
00001cd6: DUP2
00001cd7: REVERT
00001cd8: JUMPDEST
00001cd9: PUSH2 0x1b4a
00001cdc: DUP4
00001cdd: DUP4
00001cde: PUSH2 0x1bcd
00001ce1: JUMP
00001ce2: JUMPDEST
00001ce3: PUSH1 0x00
00001ce5: PUSH1 0x20
00001ce7: DUP3
00001ce8: DUP5
00001ce9: SUB
00001cea: SLT
00001ceb: ISZERO
00001cec: PUSH2 0x1cf3
00001cef: JUMPI
00001cf0: DUP1
00001cf1: DUP2
00001cf2: REVERT
00001cf3: JUMPDEST
00001cf4: DUP2
00001cf5: MLOAD
00001cf6: DUP1
00001cf7: ISZERO
00001cf8: ISZERO
00001cf9: DUP2
00001cfa: EQ
00001cfb: PUSH2 0x1b4a
00001cfe: JUMPI
00001cff: DUP2
00001d00: DUP3
00001d01: REVERT
00001d02: JUMPDEST
00001d03: PUSH1 0x00
00001d05: PUSH2 0x0120
00001d08: DUP3
00001d09: DUP5
00001d0a: SUB
00001d0b: SLT
00001d0c: ISZERO
00001d0d: PUSH2 0x1d14
00001d10: JUMPI
00001d11: DUP1
00001d12: DUP2
00001d13: REVERT
00001d14: JUMPDEST
00001d15: PUSH2 0x1d1e
00001d18: PUSH1 0xa0
00001d1a: PUSH2 0x212f
00001d1d: JUMP
00001d1e: JUMPDEST
00001d1f: DUP4
00001d20: PUSH1 0x1f
00001d22: DUP5
00001d23: ADD
00001d24: SLT
00001d25: PUSH2 0x1d2c
00001d28: JUMPI
00001d29: DUP2
00001d2a: DUP3
00001d2b: REVERT
00001d2c: JUMPDEST
00001d2d: PUSH2 0x1d36
00001d30: PUSH1 0xa0
00001d32: PUSH2 0x212f
00001d35: JUMP
00001d36: JUMPDEST
00001d37: DUP1
00001d38: DUP5
00001d39: PUSH1 0xa0
00001d3b: DUP7
00001d3c: ADD
00001d3d: DUP8
00001d3e: DUP2
00001d3f: GT
00001d40: ISZERO
00001d41: PUSH2 0x1d48
00001d44: JUMPI
00001d45: DUP6
00001d46: DUP7
00001d47: REVERT
00001d48: JUMPDEST
00001d49: DUP6
00001d4a: JUMPDEST
00001d4b: PUSH1 0x05
00001d4d: DUP2
00001d4e: LT
00001d4f: ISZERO
00001d50: PUSH2 0x1d69
00001d53: JUMPI
00001d54: DUP3
00001d55: CALLDATALOAD
00001d56: DUP6
00001d57: MSTORE
00001d58: PUSH1 0x20
00001d5a: SWAP5
00001d5b: DUP6
00001d5c: ADD
00001d5d: SWAP5
00001d5e: SWAP1
00001d5f: SWAP3
00001d60: ADD
00001d61: SWAP2
00001d62: PUSH1 0x01
00001d64: ADD
00001d65: PUSH2 0x1d4a
00001d68: JUMP
00001d69: JUMPDEST
00001d6a: POP
00001d6b: SWAP2
00001d6c: DUP5
00001d6d: MSTORE
00001d6e: POP
00001d6f: CALLDATALOAD
00001d70: PUSH1 0x20
00001d72: DUP4
00001d73: ADD
00001d74: MSTORE
00001d75: POP
00001d76: PUSH1 0xc0
00001d78: DUP4
00001d79: ADD
00001d7a: CALLDATALOAD
00001d7b: PUSH1 0x40
00001d7d: DUP3
00001d7e: ADD
00001d7f: MSTORE
00001d80: PUSH2 0x1d8c
00001d83: DUP5
00001d84: PUSH1 0xe0
00001d86: DUP6
00001d87: ADD
00001d88: PUSH2 0x1bde
00001d8b: JUMP
00001d8c: JUMPDEST
00001d8d: PUSH1 0x60
00001d8f: DUP3
00001d90: ADD
00001d91: MSTORE
00001d92: PUSH2 0x1d9f
00001d95: DUP5
00001d96: PUSH2 0x0100
00001d99: DUP6
00001d9a: ADD
00001d9b: PUSH2 0x1bc2
00001d9e: JUMP
00001d9f: JUMPDEST
00001da0: PUSH1 0x80
00001da2: DUP3
00001da3: ADD
00001da4: MSTORE
00001da5: SWAP4
00001da6: SWAP3
00001da7: POP
00001da8: POP
00001da9: POP
00001daa: JUMP
00001dab: JUMPDEST
00001dac: PUSH1 0x00
00001dae: PUSH1 0x20
00001db0: DUP3
00001db1: DUP5
00001db2: SUB
00001db3: SLT
00001db4: ISZERO
00001db5: PUSH2 0x1dbc
00001db8: JUMPI
00001db9: DUP1
00001dba: DUP2
00001dbb: REVERT
00001dbc: JUMPDEST
00001dbd: POP
00001dbe: CALLDATALOAD
00001dbf: SWAP2
00001dc0: SWAP1
00001dc1: POP
00001dc2: JUMP
00001dc3: JUMPDEST
00001dc4: PUSH1 0x00
00001dc6: PUSH1 0x20
00001dc8: DUP3
00001dc9: DUP5
00001dca: SUB
00001dcb: SLT
00001dcc: ISZERO
00001dcd: PUSH2 0x1dd4
00001dd0: JUMPI
00001dd1: DUP1
00001dd2: DUP2
00001dd3: REVERT
00001dd4: JUMPDEST
00001dd5: POP
00001dd6: MLOAD
00001dd7: SWAP2
00001dd8: SWAP1
00001dd9: POP
00001dda: JUMP
00001ddb: JUMPDEST
00001ddc: PUSH1 0x00
00001dde: PUSH1 0x20
00001de0: DUP3
00001de1: DUP5
00001de2: SUB
00001de3: SLT
00001de4: ISZERO
00001de5: PUSH2 0x1dec
00001de8: JUMPI
00001de9: DUP1
00001dea: DUP2
00001deb: REVERT
00001dec: JUMPDEST
00001ded: DUP2
00001dee: MLOAD
00001def: PUSH2 0x1b4a
00001df2: DUP2
00001df3: PUSH2 0x216b
00001df6: JUMP
00001df7: JUMPDEST
00001df8: PUSH1 0x00
00001dfa: DUP2
00001dfb: DUP5
00001dfc: DUP3
00001dfd: JUMPDEST
00001dfe: PUSH1 0x05
00001e00: DUP2
00001e01: LT
00001e02: ISZERO
00001e03: PUSH2 0x1e1c
00001e06: JUMPI
00001e07: DUP2
00001e08: CALLDATALOAD
00001e09: DUP4
00001e0a: MSTORE
00001e0b: PUSH1 0x20
00001e0d: SWAP3
00001e0e: DUP4
00001e0f: ADD
00001e10: SWAP3
00001e11: SWAP1
00001e12: SWAP2
00001e13: ADD
00001e14: SWAP1
00001e15: PUSH1 0x01
00001e17: ADD
00001e18: PUSH2 0x1dfd
00001e1b: JUMP
00001e1c: JUMPDEST
00001e1d: POP
00001e1e: POP
00001e1f: POP
00001e20: POP
00001e21: PUSH1 0xa0
00001e23: DUP2
00001e24: ADD
00001e25: SWAP2
00001e26: SWAP1
00001e27: SWAP2
00001e28: MSTORE
00001e29: PUSH1 0xc0
00001e2b: ADD
00001e2c: SWAP2
00001e2d: SWAP1
00001e2e: POP
00001e2f: JUMP
00001e30: JUMPDEST
00001e31: PUSH1 0x00
00001e33: DUP2
00001e34: DUP5
00001e35: DUP3
00001e36: JUMPDEST
00001e37: PUSH1 0x05
00001e39: DUP2
00001e3a: LT
00001e3b: ISZERO
00001e3c: PUSH2 0x1e1c
00001e3f: JUMPI
00001e40: DUP2
00001e41: MLOAD
00001e42: DUP4
00001e43: MSTORE
00001e44: PUSH1 0x20
00001e46: SWAP3
00001e47: DUP4
00001e48: ADD
00001e49: SWAP3
00001e4a: SWAP1
00001e4b: SWAP2
00001e4c: ADD
00001e4d: SWAP1
00001e4e: PUSH1 0x01
00001e50: ADD
00001e51: PUSH2 0x1e36
00001e54: JUMP
00001e55: JUMPDEST
00001e56: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
00001e77: DUP2
00001e78: MSTORE
00001e79: PUSH1 0x1c
00001e7b: DUP2
00001e7c: ADD
00001e7d: SWAP2
00001e7e: SWAP1
00001e7f: SWAP2
00001e80: MSTORE
00001e81: PUSH1 0x3c
00001e83: ADD
00001e84: SWAP1
00001e85: JUMP
00001e86: JUMPDEST
00001e87: PUSH1 0x01
00001e89: PUSH1 0x01
00001e8b: PUSH1 0xa0
00001e8d: SHL
00001e8e: SUB
00001e8f: SWAP2
00001e90: SWAP1
00001e91: SWAP2
00001e92: AND
00001e93: DUP2
00001e94: MSTORE
00001e95: PUSH1 0x20
00001e97: ADD
00001e98: SWAP1
00001e99: JUMP
00001e9a: JUMPDEST
00001e9b: PUSH1 0x01
00001e9d: PUSH1 0x01
00001e9f: PUSH1 0xa0
00001ea1: SHL
00001ea2: SUB
00001ea3: SWAP3
00001ea4: SWAP1
00001ea5: SWAP3
00001ea6: AND
00001ea7: DUP3
00001ea8: MSTORE
00001ea9: PUSH1 0x20
00001eab: DUP3
00001eac: ADD
00001ead: MSTORE
00001eae: PUSH1 0x40
00001eb0: ADD
00001eb1: SWAP1
00001eb2: JUMP
00001eb3: JUMPDEST
00001eb4: PUSH1 0x01
00001eb6: PUSH1 0x01
00001eb8: PUSH1 0xa0
00001eba: SHL
00001ebb: SUB
00001ebc: SWAP4
00001ebd: DUP5
00001ebe: AND
00001ebf: DUP2
00001ec0: MSTORE
00001ec1: PUSH1 0x20
00001ec3: DUP2
00001ec4: ADD
00001ec5: SWAP3
00001ec6: SWAP1
00001ec7: SWAP3
00001ec8: MSTORE
00001ec9: SWAP1
00001eca: SWAP2
00001ecb: AND
00001ecc: PUSH1 0x40
00001ece: DUP3
00001ecf: ADD
00001ed0: MSTORE
00001ed1: PUSH1 0x60
00001ed3: ADD
00001ed4: SWAP1
00001ed5: JUMP
00001ed6: JUMPDEST
00001ed7: PUSH1 0x01
00001ed9: PUSH1 0x01
00001edb: PUSH1 0xa0
00001edd: SHL
00001ede: SUB
00001edf: SWAP5
00001ee0: DUP6
00001ee1: AND
00001ee2: DUP2
00001ee3: MSTORE
00001ee4: PUSH1 0x20
00001ee6: DUP2
00001ee7: ADD
00001ee8: SWAP4
00001ee9: SWAP1
00001eea: SWAP4
00001eeb: MSTORE
00001eec: SWAP3
00001eed: AND
00001eee: PUSH1 0x40
00001ef0: DUP3
00001ef1: ADD
00001ef2: MSTORE
00001ef3: PUSH2 0xffff
00001ef6: SWAP1
00001ef7: SWAP2
00001ef8: AND
00001ef9: PUSH1 0x60
00001efb: DUP3
00001efc: ADD
00001efd: MSTORE
00001efe: PUSH1 0x80
00001f00: ADD
00001f01: SWAP1
00001f02: JUMP
00001f03: JUMPDEST
00001f04: PUSH1 0x60
00001f06: DUP1
00001f07: DUP3
00001f08: MSTORE
00001f09: DUP5
00001f0a: MLOAD
00001f0b: SWAP1
00001f0c: DUP3
00001f0d: ADD
00001f0e: DUP2
00001f0f: SWAP1
00001f10: MSTORE
00001f11: PUSH1 0x00
00001f13: SWAP1
00001f14: PUSH1 0x20
00001f16: SWAP1
00001f17: PUSH1 0x80
00001f19: DUP5
00001f1a: ADD
00001f1b: SWAP1
00001f1c: DUP3
00001f1d: DUP9
00001f1e: ADD
00001f1f: DUP5
00001f20: JUMPDEST
00001f21: DUP3
00001f22: DUP2
00001f23: LT
00001f24: ISZERO
00001f25: PUSH2 0x1f45
00001f28: JUMPI
00001f29: DUP2
00001f2a: MLOAD
00001f2b: PUSH1 0x01
00001f2d: PUSH1 0x01
00001f2f: PUSH1 0xa0
00001f31: SHL
00001f32: SUB
00001f33: AND
00001f34: DUP5
00001f35: MSTORE
00001f36: SWAP3
00001f37: DUP5
00001f38: ADD
00001f39: SWAP3
00001f3a: SWAP1
00001f3b: DUP5
00001f3c: ADD
00001f3d: SWAP1
00001f3e: PUSH1 0x01
00001f40: ADD
00001f41: PUSH2 0x1f20
00001f44: JUMP
00001f45: JUMPDEST
00001f46: POP
00001f47: POP
00001f48: POP
00001f49: SWAP1
00001f4a: DUP4
00001f4b: ADD
00001f4c: SWAP5
00001f4d: SWAP1
00001f4e: SWAP5
00001f4f: MSTORE
00001f50: POP
00001f51: PUSH1 0x01
00001f53: PUSH1 0x01
00001f55: PUSH1 0xa0
00001f57: SHL
00001f58: SUB
00001f59: SWAP2
00001f5a: SWAP1
00001f5b: SWAP2
00001f5c: AND
00001f5d: PUSH1 0x40
00001f5f: SWAP1
00001f60: SWAP2
00001f61: ADD
00001f62: MSTORE
00001f63: SWAP2
00001f64: SWAP1
00001f65: POP
00001f66: JUMP
00001f67: JUMPDEST
00001f68: PUSH1 0xa0
00001f6a: DUP2
00001f6b: ADD
00001f6c: DUP2
00001f6d: DUP4
00001f6e: PUSH1 0x00
00001f70: JUMPDEST
00001f71: PUSH1 0x05
00001f73: DUP2
00001f74: LT
00001f75: ISZERO
00001f76: PUSH2 0x1f8f
00001f79: JUMPI
00001f7a: DUP2
00001f7b: MLOAD
00001f7c: DUP4
00001f7d: MSTORE
00001f7e: PUSH1 0x20
00001f80: SWAP3
00001f81: DUP4
00001f82: ADD
00001f83: SWAP3
00001f84: SWAP1
00001f85: SWAP2
00001f86: ADD
00001f87: SWAP1
00001f88: PUSH1 0x01
00001f8a: ADD
00001f8b: PUSH2 0x1f70
00001f8e: JUMP
00001f8f: JUMPDEST
00001f90: POP
00001f91: POP
00001f92: POP
00001f93: SWAP3
00001f94: SWAP2
00001f95: POP
00001f96: POP
00001f97: JUMP
00001f98: JUMPDEST
00001f99: SWAP1
00001f9a: DUP2
00001f9b: MSTORE
00001f9c: PUSH1 0x20
00001f9e: ADD
00001f9f: SWAP1
00001fa0: JUMP
00001fa1: JUMPDEST
00001fa2: SWAP4
00001fa3: DUP5
00001fa4: MSTORE
00001fa5: PUSH1 0xff
00001fa7: SWAP3
00001fa8: SWAP1
00001fa9: SWAP3
00001faa: AND
00001fab: PUSH1 0x20
00001fad: DUP5
00001fae: ADD
00001faf: MSTORE
00001fb0: PUSH1 0x40
00001fb2: DUP4
00001fb3: ADD
00001fb4: MSTORE
00001fb5: PUSH1 0x60
00001fb7: DUP3
00001fb8: ADD
00001fb9: MSTORE
00001fba: PUSH1 0x80
00001fbc: ADD
00001fbd: SWAP1
00001fbe: JUMP
00001fbf: JUMPDEST
00001fc0: PUSH1 0x00
00001fc2: PUSH1 0x20
00001fc4: DUP1
00001fc5: DUP4
00001fc6: MSTORE
00001fc7: DUP4
00001fc8: MLOAD
00001fc9: DUP1
00001fca: DUP3
00001fcb: DUP6
00001fcc: ADD
00001fcd: MSTORE
00001fce: DUP3
00001fcf: JUMPDEST
00001fd0: DUP2
00001fd1: DUP2
00001fd2: LT
00001fd3: ISZERO
00001fd4: PUSH2 0x1feb
00001fd7: JUMPI
00001fd8: DUP6
00001fd9: DUP2
00001fda: ADD
00001fdb: DUP4
00001fdc: ADD
00001fdd: MLOAD
00001fde: DUP6
00001fdf: DUP3
00001fe0: ADD
00001fe1: PUSH1 0x40
00001fe3: ADD
00001fe4: MSTORE
00001fe5: DUP3
00001fe6: ADD
00001fe7: PUSH2 0x1fcf
00001fea: JUMP
00001feb: JUMPDEST
00001fec: DUP2
00001fed: DUP2
00001fee: GT
00001fef: ISZERO
00001ff0: PUSH2 0x1ffc
00001ff3: JUMPI
00001ff4: DUP4
00001ff5: PUSH1 0x40
00001ff7: DUP4
00001ff8: DUP8
00001ff9: ADD
00001ffa: ADD
00001ffb: MSTORE
00001ffc: JUMPDEST
00001ffd: POP
00001ffe: PUSH1 0x1f
00002000: ADD
00002001: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00002022: AND
00002023: SWAP3
00002024: SWAP1
00002025: SWAP3
00002026: ADD
00002027: PUSH1 0x40
00002029: ADD
0000202a: SWAP4
0000202b: SWAP3
0000202c: POP
0000202d: POP
0000202e: POP
0000202f: JUMP
00002030: JUMPDEST
00002031: PUSH1 0x20
00002033: DUP1
00002034: DUP3
00002035: MSTORE
00002036: PUSH1 0x13
00002038: SWAP1
00002039: DUP3
0000203a: ADD
0000203b: MSTORE
0000203c: PUSH32 0x556e737566696369656e742062616c616e636500000000000000000000000000
0000205d: PUSH1 0x40
0000205f: DUP3
00002060: ADD
00002061: MSTORE
00002062: PUSH1 0x60
00002064: ADD
00002065: SWAP1
00002066: JUMP
00002067: JUMPDEST
00002068: PUSH1 0x20
0000206a: DUP1
0000206b: DUP3
0000206c: MSTORE
0000206d: PUSH1 0x1a
0000206f: SWAP1
00002070: DUP3
00002071: ADD
00002072: MSTORE
00002073: PUSH32 0x556e737566696369656e74206275666665722062616c616e6365000000000000
00002094: PUSH1 0x40
00002096: DUP3
00002097: ADD
00002098: MSTORE
00002099: PUSH1 0x60
0000209b: ADD
0000209c: SWAP1
0000209d: JUMP
0000209e: JUMPDEST
0000209f: PUSH1 0x20
000020a1: DUP1
000020a2: DUP3
000020a3: MSTORE
000020a4: PUSH1 0x11
000020a6: SWAP1
000020a7: DUP3
000020a8: ADD
000020a9: MSTORE
000020aa: PUSH32 0x496e76616c6964207369676e6174757265000000000000000000000000000000
000020cb: PUSH1 0x40
000020cd: DUP3
000020ce: ADD
000020cf: MSTORE
000020d0: PUSH1 0x60
000020d2: ADD
000020d3: SWAP1
000020d4: JUMP
000020d5: JUMPDEST
000020d6: PUSH1 0x20
000020d8: DUP1
000020d9: DUP3
000020da: MSTORE
000020db: PUSH1 0x13
000020dd: SWAP1
000020de: DUP3
000020df: ADD
000020e0: MSTORE
000020e1: PUSH32 0x496e737566696369656e742062616c616e636500000000000000000000000000
00002102: PUSH1 0x40
00002104: DUP3
00002105: ADD
00002106: MSTORE
00002107: PUSH1 0x60
00002109: ADD
0000210a: SWAP1
0000210b: JUMP
0000210c: JUMPDEST
0000210d: SWAP5
0000210e: DUP6
0000210f: MSTORE
00002110: PUSH1 0x20
00002112: DUP6
00002113: ADD
00002114: SWAP4
00002115: SWAP1
00002116: SWAP4
00002117: MSTORE
00002118: PUSH1 0x40
0000211a: DUP5
0000211b: ADD
0000211c: SWAP2
0000211d: SWAP1
0000211e: SWAP2
0000211f: MSTORE
00002120: PUSH1 0x60
00002122: DUP4
00002123: ADD
00002124: MSTORE
00002125: PUSH1 0x80
00002127: DUP3
00002128: ADD
00002129: MSTORE
0000212a: PUSH1 0xa0
0000212c: ADD
0000212d: SWAP1
0000212e: JUMP
0000212f: JUMPDEST
00002130: PUSH1 0x40
00002132: MLOAD
00002133: DUP2
00002134: DUP2
00002135: ADD
00002136: PUSH8 0xffffffffffffffff
0000213f: DUP2
00002140: GT
00002141: DUP3
00002142: DUP3
00002143: LT
00002144: OR
00002145: ISZERO
00002146: PUSH2 0x214e
00002149: JUMPI
0000214a: PUSH1 0x00
0000214c: DUP1
0000214d: REVERT
0000214e: JUMPDEST
0000214f: PUSH1 0x40
00002151: MSTORE
00002152: SWAP2
00002153: SWAP1
00002154: POP
00002155: JUMP
00002156: JUMPDEST
00002157: PUSH1 0x01
00002159: PUSH1 0x01
0000215b: PUSH1 0xa0
0000215d: SHL
0000215e: SUB
0000215f: DUP2
00002160: AND
00002161: DUP2
00002162: EQ
00002163: PUSH2 0x0521
00002166: JUMPI
00002167: PUSH1 0x00
00002169: DUP1
0000216a: REVERT
0000216b: JUMPDEST
0000216c: PUSH1 0xff
0000216e: DUP2
0000216f: AND
00002170: DUP2
00002171: EQ
00002172: PUSH2 0x0521
00002175: JUMPI
00002176: PUSH1 0x00
00002178: DUP1
00002179: REVERT
0000217a: INVALID
0000217b: LOG2
0000217c: PUSH5 0x6970667358
00002182: UNKNOWN(0x22)
00002183: SLT
00002184: KECCAK256
00002185: DUP6
00002186: PUSH28 0xc2d00815f2c9769d1295d1a140240ae14a17266c9bfae1f7cad3f098
000021a3: SMOD
000021a4: UNKNOWN(0xE7)
000021a5: PUSH5 0x736f6c6343
000021ab: STOP
000021ac: MOD
000021ad: UNKNOWN(0x0C)
000021ae: STOP
000021af: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x1f8b3a12d5835886f321f0fe553f827a2c653651d1536946f00a07654f9e44fd
call_targets: 0x0c432335a0f4280d348e5ff865e02cc5e9562b3d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x1f8b3a12d5835886f321f0fe553f827a2c653651d1536946f00a07654f9e44fd",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0c432335a0f4280d348e5ff865e02cc5e9562b3d"
    ],
    "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": "0xd5eecedd",
            "selector": "0xd5eecedd",
            "calldata_variants": [
                "0xd5eecedd",
                "0xd5eecedd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfebcc2bd",
            "selector": "0xfebcc2bd",
            "calldata_variants": [
                "0xfebcc2bd",
                "0xfebcc2bd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb38dfbcd",
            "selector": "0xb38dfbcd",
            "calldata_variants": [
                "0xb38dfbcd",
                "0xb38dfbcd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbf220914",
            "selector": "0xbf220914",
            "calldata_variants": [
                "0xbf220914",
                "0xbf2209140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd0e30db0",
            "selector": "0xd0e30db0",
            "calldata_variants": [
                "0xd0e30db0",
                "0xd0e30db00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa3bf224b",
            "selector": "0xa3bf224b",
            "calldata_variants": [
                "0xa3bf224b",
                "0xa3bf224b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xac4afa38",
            "selector": "0xac4afa38",
            "calldata_variants": [
                "0xac4afa38",
                "0xac4afa380000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2933,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3713,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4233,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 5,
    "guards_detected": [],
    "untrusted_call_count": 5
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x1f8b3a12d5835886f321f0fe553f827a2c653651d1536946f00a07654f9e44fd
call_targets: 0x0c432335a0f4280d348e5ff865e02cc5e9562b3d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x1f8b3a12d5835886f321f0fe553f827a2c653651d1536946f00a07654f9e44fd",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0c432335a0f4280d348e5ff865e02cc5e9562b3d"
    ],
    "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": "0xd5eecedd",
            "selector": "0xd5eecedd",
            "calldata_variants": [
                "0xd5eecedd",
                "0xd5eecedd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfebcc2bd",
            "selector": "0xfebcc2bd",
            "calldata_variants": [
                "0xfebcc2bd",
                "0xfebcc2bd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb38dfbcd",
            "selector": "0xb38dfbcd",
            "calldata_variants": [
                "0xb38dfbcd",
                "0xb38dfbcd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbf220914",
            "selector": "0xbf220914",
            "calldata_variants": [
                "0xbf220914",
                "0xbf2209140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd0e30db0",
            "selector": "0xd0e30db0",
            "calldata_variants": [
                "0xd0e30db0",
                "0xd0e30db00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa3bf224b",
            "selector": "0xa3bf224b",
            "calldata_variants": [
                "0xa3bf224b",
                "0xa3bf224b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xac4afa38",
            "selector": "0xac4afa38",
            "calldata_variants": [
                "0xac4afa38",
                "0xac4afa380000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2933,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3713,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4233,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 5,
    "guards_detected": []
}
low auth codex Balance update signatures lack domain separation (replay across contracts/chains) 65 no
view
evidence_json
{
    "evidence": "verifyProof/getMessage hash only `deltas` and `userNonce` with no contract/chain binding.",
    "locations": [
        "contracts/NashSavingsLedgerAave.sol:161",
        "contracts/NashSavingsLedgerAave.sol:366"
    ],
    "recommendation": "Bind signatures to the contract and chain (e.g., EIP-712 typed data including contract address, chainId, user address, and nonce). Consider using a full-width uint256 nonce to avoid wrap-around reuse.",
    "exploit_scenario": "A user signs an offchain balance update for one deployment. Because the signed message only includes deltas and nonce, the same signature can be replayed on another deployment or chain with the same nonce, allowing a privileged updater to apply unintended negative deltas there."
}
low math codex Manual withdrawal fee is unchecked and can underflow 65 no
view
evidence_json
{
    "evidence": "`applyFee` computes `(10000 - fee)` without bounds checks; `setFee` allows any value and `withdraw` uses `applyFee`.",
    "locations": [
        "contracts/NashSavingsLedgerAave.sol:154",
        "contracts/NashSavingsLedgerAave.sol:212",
        "contracts/NashSavingsLedgerAave.sol:318"
    ],
    "recommendation": "Validate `newFee <= 10000` in `setFee` and use SafeMath or explicit bounds checks in `applyFee`.",
    "exploit_scenario": "If the owner sets `manualWithdrawalFee` above 10000, `applyFee` underflows and produces a huge withdrawal amount, likely causing withdrawals to revert and effectively DoSing user withdrawals."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 12
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 13
}