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

Analysis Run

019bb377-84c2-701a-9244-2bb4af000d2a

complete
Chain ID
1
Address
Block Number
Created
Mon, Jan 12, 2026 6:28 PM
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 DELEGATECALL target 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
39942 artifact.fetch complete 1 / 3 3 months ago
39943 proxy.resolve complete 1 / 3 3 months ago
39944 tool.cast_disasm complete 1 / 3 3 months ago
39945 analysis.bundle complete 1 / 3 3 months ago
39946 capability.graph complete 1 / 3 3 months ago
39947 detector.run complete 1 / 3 3 months ago
39948 validation.fork complete 1 / 3 3 months ago
39993 report.consolidate complete 1 / 6 3 months ago
39994 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.8.24 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-swqqgsay)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-swqqgsay)

Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#206-277) has bitwise-xor operator ^ instead of the exponentiation operator **: 
	 - inverse = (3 * denominator) ^ 2 (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#259)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-exponentiation

Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#206-277) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#244)
	- inverse = (3 * denominator) ^ 2 (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#259)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#206-277) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#244)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#263)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#206-277) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#244)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#264)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#206-277) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#244)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#265)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#206-277) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#244)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#266)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#206-277) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#244)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#267)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#206-277) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#244)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#268)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#206-277) performs a multiplication on the result of a division:
	- low = low / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#247)
	- result = low * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#274)
Math.invMod(uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#317-363) performs a multiplication on the result of a division:
	- quotient = gcd / remainder (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#339)
	- (gcd,remainder) = (remainder,gcd - remainder * quotient) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#341-348)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply

SignatureChecker.isValidSignatureNow(address,bytes32,bytes) (lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol#32-39) ignores return value by (recovered,err,None) = ECDSA.tryRecover(hash,signature) (lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol#34)
SignatureChecker.isValidSignatureNowCalldata(address,bytes32,bytes) (lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol#44-55) ignores return value by (recovered,err,None) = ECDSA.tryRecoverCalldata(hash,signature) (lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol#50)
AccessControlEnumerableUpgradeable._grantRole(bytes32,address) (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#72-79) ignores return value by $._roleMembers[role].add(account) (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#76)
AccessControlEnumerableUpgradeable._revokeRole(bytes32,address) (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#84-91) ignores return value by $._roleMembers[role].remove(account) (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#88)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return

Distributor.finalizePrefill(uint256,uint256,uint256) (src/unlock/v1/Distributor.sol#815-833) should emit an event for: 
	- totalCarryGenerated = totalCarryGenerated_ (src/unlock/v1/Distributor.sol#821) 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-events-arithmetic

Distributor._claimable(bytes16,uint64,bool) (src/unlock/v1/Distributor.sol#503-530) has external calls inside a loop: totalReceived = token.balanceOf(address(this)) + (totalClaimed - totalCarryGenerated) + totalCarryWithdrawn (src/unlock/v1/Distributor.sol#512-513)
	Calls stack containing the loop:
		Distributor.claimable(bytes16[],uint64[],bool)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop

Reentrancy in Distributor.claim(ClaimData,bytes,bytes,Claimer,bytes32[],bool) (src/unlock/v1/Distributor.sol#266-279):
	External calls:
	- pullUnlockedTokens() (src/unlock/v1/Distributor.sol#275)
		- UnlockerLib.release(unlocker) (src/unlock/v1/Distributor.sol#251)
		- IEchoUnlocker(unlocker.unlocker).release() (src/unlock/v1/UnlockerLib.sol#75-79)
		- ISuperfluidUnlocker(unlocker.unlocker).downgrade(ISuperfluidUnlocker(unlocker.unlocker).balanceOf(address(this))) (src/unlock/v1/UnlockerLib.sol#84-88)
	State variables written after the call(s):
	- _release(claimData,claimSignatureUser,claimSignaturePlatform,user,merkleProof) (src/unlock/v1/Distributor.sol#278)
		- $ = AccessControlStorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#69)
	- _release(claimData,claimSignatureUser,claimSignaturePlatform,user,merkleProof) (src/unlock/v1/Distributor.sol#278)
		- $ = EIP712StorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#52)
	- _release(claimData,claimSignatureUser,claimSignaturePlatform,user,merkleProof) (src/unlock/v1/Distributor.sol#278)
		- state.amountClaimed += claimData.amount (src/unlock/v1/Distributor.sol#336)
		- state.amountClaimedUSDC += uint64(amountUSDC) (src/unlock/v1/Distributor.sol#337)
	- _release(claimData,claimSignatureUser,claimSignaturePlatform,user,merkleProof) (src/unlock/v1/Distributor.sol#278)
		- totalCarryGenerated += amountCarry (src/unlock/v1/Distributor.sol#340)
	- _release(claimData,claimSignatureUser,claimSignaturePlatform,user,merkleProof) (src/unlock/v1/Distributor.sol#278)
		- totalClaimed += claimData.amount (src/unlock/v1/Distributor.sol#339)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2

Reentrancy in Distributor.claim(ClaimData,bytes,bytes,Claimer,bytes32[],bool) (src/unlock/v1/Distributor.sol#266-279):
	External calls:
	- pullUnlockedTokens() (src/unlock/v1/Distributor.sol#275)
		- UnlockerLib.release(unlocker) (src/unlock/v1/Distributor.sol#251)
		- IEchoUnlocker(unlocker.unlocker).release() (src/unlock/v1/UnlockerLib.sol#75-79)
		- ISuperfluidUnlocker(unlocker.unlocker).downgrade(ISuperfluidUnlocker(unlocker.unlocker).balanceOf(address(this))) (src/unlock/v1/UnlockerLib.sol#84-88)
	Event emitted after the call(s):
	- Claimed(tokenDistributionUUID,claimData.entityUUID,claimData.receiver,claimData.amount,amountUSDC,amountCarry) (src/unlock/v1/Distributor.sol#342-344)
		- _release(claimData,claimSignatureUser,claimSignaturePlatform,user,merkleProof) (src/unlock/v1/Distributor.sol#278)
Reentrancy in UnlockerLib.release(UnlockerLib.Unlocker) (src/unlock/v1/UnlockerLib.sol#67-93):
	External calls:
	- IEchoUnlocker(unlocker.unlocker).release() (src/unlock/v1/UnlockerLib.sol#75-79)
	Event emitted after the call(s):
	- ReleaseFailedLog(reason) (src/unlock/v1/UnlockerLib.sol#78)
Reentrancy in UnlockerLib.release(UnlockerLib.Unlocker) (src/unlock/v1/UnlockerLib.sol#67-93):
	External calls:
	- ISuperfluidUnlocker(unlocker.unlocker).downgrade(ISuperfluidUnlocker(unlocker.unlocker).balanceOf(address(this))) (src/unlock/v1/UnlockerLib.sol#84-88)
	Event emitted after the call(s):
	- ReleaseFailedLog(reason_scope_0) (src/unlock/v1/UnlockerLib.sol#87)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

Distributor._release(ClaimData,bytes,bytes,Claimer,bytes32[]) (src/unlock/v1/Distributor.sol#281-347) uses timestamp for comparisons
	Dangerous comparisons:
	- block.timestamp >= claimData.expiresAt (src/unlock/v1/Distributor.sol#292)
Distributor.withdrawCarry(CarryWithdrawalData,bytes,bytes) (src/unlock/v1/Distributor.sol#393-441) uses timestamp for comparisons
	Dangerous comparisons:
	- block.timestamp >= data.expiresAt (src/unlock/v1/Distributor.sol#402)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp

SafeERC20._safeTransfer(IERC20,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#176-200) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#179-199)
SafeERC20._safeTransferFrom(IERC20,address,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#212-244) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#221-243)
SafeERC20._safeApprove(IERC20,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#255-279) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#258-278)
Arrays._begin(uint256[]) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#142-146) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#143-145)
Arrays._mload(uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#161-165) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#162-164)
Arrays._swap(uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#170-177) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#171-176)
Arrays._castToUint256Array(address[]) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#180-184) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#181-183)
Arrays._castToUint256Array(bytes32[]) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#187-191) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#188-190)
Arrays._castToUint256Comp(function(address,address) returns(bool)) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#194-200) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#197-199)
Arrays._castToUint256Comp(function(bytes32,bytes32) returns(bool)) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#203-209) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#206-208)
Arrays.slice(address[],uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#394-406) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#401-403)
Arrays.slice(bytes32[],uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#424-436) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#431-433)
Arrays.slice(uint256[],uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#454-466) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#461-463)
Arrays.splice(address[],uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#485-497) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#491-494)
Arrays.replace(address[],uint256,address[],uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#526-548) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#539-545)
Arrays.splice(bytes32[],uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#567-579) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#573-576)
Arrays.replace(bytes32[],uint256,bytes32[],uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#608-630) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#621-627)
Arrays.splice(uint256[],uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#649-661) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#655-658)
Arrays.replace(uint256[],uint256,uint256[],uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#690-712) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#703-709)
Arrays.unsafeAccess(address[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#719-725) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#721-723)
Arrays.unsafeAccess(bytes32[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#732-738) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#734-736)
Arrays.unsafeAccess(uint256[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#745-751) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#747-749)
Arrays.unsafeAccess(bytes[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#758-764) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#760-762)
Arrays.unsafeAccess(string[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#771-777) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#773-775)
Arrays.unsafeMemoryAccess(address[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#784-788) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#785-787)
Arrays.unsafeMemoryAccess(bytes32[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#795-799) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#796-798)
Arrays.unsafeMemoryAccess(uint256[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#806-810) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#807-809)
Arrays.unsafeMemoryAccess(bytes[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#817-821) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#818-820)
Arrays.unsafeMemoryAccess(string[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#828-832) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#829-831)
Arrays.unsafeSetLength(address[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#839-843) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#840-842)
Arrays.unsafeSetLength(bytes32[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#850-854) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#851-853)
Arrays.unsafeSetLength(uint256[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#861-865) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#862-864)
Arrays.unsafeSetLength(bytes[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#872-876) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#873-875)
Arrays.unsafeSetLength(string[],uint256) (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#883-887) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#884-886)
Bytes.slice(bytes,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#86-98) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#93-95)
Bytes.splice(bytes,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#117-129) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#123-126)
Bytes.replace(bytes,uint256,bytes,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#154-172) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#167-169)
Bytes.concat(bytes[]) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#183-203) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#194-196)
Bytes.toNibbles(bytes) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#210-245) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#211-244)
Bytes._unsafeReadBytesOffset(bytes,uint256) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#326-331) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#328-330)
Panic.panic(uint256) (lib/openzeppelin-contracts/contracts/utils/Panic.sol#50-56) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Panic.sol#51-55)
SlotDerivation.erc7201Slot(string) (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#45-50) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#46-49)
SlotDerivation.deriveArray(bytes32) (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#64-69) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#65-68)
SlotDerivation.deriveMapping(bytes32,address) (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#74-80) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#75-79)
SlotDerivation.deriveMapping(bytes32,bool) (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#85-91) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#86-90)
SlotDerivation.deriveMapping(bytes32,bytes32) (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#96-102) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#97-101)
SlotDerivation.deriveMapping(bytes32,uint256) (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#107-113) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#108-112)
SlotDerivation.deriveMapping(bytes32,int256) (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#118-124) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#119-123)
SlotDerivation.deriveMapping(bytes32,string) (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#129-139) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#130-138)
SlotDerivation.deriveMapping(bytes32,bytes) (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#144-154) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#145-153)
StorageSlot.getAddressSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#66-70) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#67-69)
StorageSlot.getBooleanSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#75-79) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#76-78)
StorageSlot.getBytes32Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#84-88) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#85-87)
StorageSlot.getUint256Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#93-97) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#94-96)
StorageSlot.getInt256Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#102-106) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#103-105)
StorageSlot.getStringSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#111-115) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#112-114)
StorageSlot.getStringSlot(string) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#120-124) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#121-123)
StorageSlot.getBytesSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#129-133) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#130-132)
StorageSlot.getBytesSlot(bytes) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#138-142) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#139-141)
Strings.toString(uint256) (lib/openzeppelin-contracts/contracts/utils/Strings.sol#46-64) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Strings.sol#51-53)
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Strings.sol#56-58)
Strings.toChecksumHexString(address) (lib/openzeppelin-contracts/contracts/utils/Strings.sol#112-130) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Strings.sol#117-119)
Strings.escapeJSON(string) (lib/openzeppelin-contracts/contracts/utils/Strings.sol#464-494) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Strings.sol#488-491)
Strings._unsafeReadBytesOffset(bytes,uint256) (lib/openzeppelin-contracts/contracts/utils/Strings.sol#502-507) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Strings.sol#504-506)
ECDSA.tryRecover(bytes32,bytes) (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#61-80) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#71-75)
ECDSA.tryRecoverCalldata(bytes32,bytes) (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#85-104) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#95-99)
ECDSA.parse(bytes) (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#217-240) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#218-239)
ECDSA.parseCalldata(bytes) (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#245-268) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#246-267)
Hashes.efficientKeccak256(bytes32,bytes32) (lib/openzeppelin-contracts/contracts/utils/cryptography/Hashes.sol#24-30) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/Hashes.sol#25-29)
MessageHashUtils.toEthSignedMessageHash(bytes32) (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#32-38) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#33-37)
MessageHashUtils.toDataWithIntendedValidatorHash(address,bytes32) (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#71-81) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#75-80)
MessageHashUtils.toTypedDataHash(bytes32,bytes32) (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#92-100) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#93-99)
MessageHashUtils.toDomainSeparator(bytes1,bytes32,bytes32,uint256,address,bytes32) (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#137-179) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#147-178)
MessageHashUtils.toDomainTypeHash(bytes1) (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#182-227) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#185-226)
SignatureChecker.isValidERC1271SignatureNow(address,bytes32,bytes) (lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol#64-88) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol#72-87)
SignatureChecker.isValidERC1271SignatureNowCalldata(address,bytes32,bytes) (lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol#90-115) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol#98-114)
Math.add512(uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#25-30) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#26-29)
Math.mul512(uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#37-46) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#41-45)
Math.tryMul(uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#73-84) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#76-80)
Math.tryDiv(uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#89-97) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#92-95)
Math.tryMod(uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#102-110) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#105-108)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#206-277) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#229-236)
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#242-251)
Math.tryModExp(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#411-435) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#413-434)
Math.tryModExp(bytes,bytes,bytes) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#451-473) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#463-472)
Math._zeroBytes(bytes) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#478-490) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#482-484)
Math.log2(uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#619-658) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#655-657)
SafeCast.toUint(bool) (lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol#1157-1161) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol#1158-1160)
EnumerableSet.values(EnumerableSet.Bytes32Set) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#276-285) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#280-282)
EnumerableSet.values(EnumerableSet.Bytes32Set,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#295-304) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#299-301)
EnumerableSet.values(EnumerableSet.Bytes4Set) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#378-387) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#382-384)
EnumerableSet.values(EnumerableSet.Bytes4Set,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#397-406) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#401-403)
EnumerableSet.values(EnumerableSet.AddressSet) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#480-489) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#484-486)
EnumerableSet.values(EnumerableSet.AddressSet,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#499-508) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#503-505)
EnumerableSet.values(EnumerableSet.UintSet) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#582-591) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#586-588)
EnumerableSet.values(EnumerableSet.UintSet,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#601-610) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#605-607)
AccessControlUpgradeable._getAccessControlStorage() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#67-71) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#68-70)
AccessControlEnumerableUpgradeable._getAccessControlEnumerableStorage() (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#25-29) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#26-28)
Initializable._getInitializableStorage() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#223-227) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#224-226)
EIP712Upgradeable._getEIP712Storage() (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#50-54) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#51-53)
Merkle.hashLeaf(bytes) (src/Merkle.sol#47-54) uses assembly
	- INLINE ASM (src/Merkle.sol#49-52)
Merkle.hashPairs(bytes32[],bool) (src/Merkle.sol#110-140) uses assembly
	- INLINE ASM (src/Merkle.sol#134-136)
Merkle.efficientHash(bytes32,bytes32) (src/Merkle.sol#146-153) uses assembly
	- INLINE ASM (src/Merkle.sol#148-152)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

7 different versions of Solidity are used:
	- Version constraint >=0.8.4 is used by:
		->=0.8.4 (lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4)
		->=0.8.4 (lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#4)
	- Version constraint >=0.5.0 is used by:
		->=0.5.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol#4)
		->=0.5.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC7913.sol#4)
	- Version constraint >=0.6.2 is used by:
		->=0.6.2 (lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol#4)
	- Version constraint >=0.4.16 is used by:
		->=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol#4)
		->=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol#4)
		->=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol#4)
		->=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
		->=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
	- Version constraint ^0.8.20 is used by:
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Comparators.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Panic.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#5)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/cryptography/Hashes.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol#5)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol#5)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)
	- Version constraint ^0.8.24 is used by:
		-^0.8.24 (lib/openzeppelin-contracts/contracts/utils/Arrays.sol#5)
		-^0.8.24 (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#4)
		-^0.8.24 (lib/openzeppelin-contracts/contracts/utils/Strings.sol#4)
		-^0.8.24 (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#4)
		-^0.8.24 (lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol#4)
		-^0.8.24 (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#5)
	- Version constraint ^0.8.23 is used by:
		-^0.8.23 (src/Merkle.sol#2)
		-^0.8.23 (src/Versioned.sol#2)
		-^0.8.23 (src/interfaces/GenericRegistryKeys.sol#2)
		-^0.8.23 (src/interfaces/IGenericRegistry.sol#2)
		-^0.8.23 (src/interfaces/PlatformEvents.sol#2)
		-^0.8.23 (src/unlock/v1/Distributor.sol#2)
		-^0.8.23 (src/unlock/v1/Types.sol#2)
		-^0.8.23 (src/unlock/v1/UnlockerLib.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

Version constraint >=0.8.4 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables.
It is used by:
	- >=0.8.4 (lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4)
	- >=0.8.4 (lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#4)
Version constraint >=0.5.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- DirtyBytesArrayToStorage
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow
	- privateCanBeOverridden
	- SignedArrayStorageCopy
	- ABIEncoderV2StorageArrayWithMultiSlotElement
	- DynamicConstructorArgumentsClippedABIV2
	- UninitializedFunctionPointerInConstructor
	- IncorrectEventSignatureInLibraries
	- ABIEncoderV2PackedStorage.
It is used by:
	- >=0.5.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol#4)
	- >=0.5.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC7913.sol#4)
Version constraint >=0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- NestedCalldataArrayAbiReencodingSizeValidation
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- MissingEscapingInFormatting
	- ArraySliceDynamicallyEncodedBaseType
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow.
It is used by:
	- >=0.6.2 (lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol#4)
Version constraint >=0.4.16 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- DirtyBytesArrayToStorage
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow
	- privateCanBeOverridden
	- SignedArrayStorageCopy
	- ABIEncoderV2StorageArrayWithMultiSlotElement
	- DynamicConstructorArgumentsClippedABIV2
	- UninitializedFunctionPointerInConstructor_0.4.x
	- IncorrectEventSignatureInLibraries_0.4.x
	- ExpExponentCleanup
	- NestedArrayFunctionCallDecoder
	- ZeroFunctionSelector.
It is used by:
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol#4)
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol#4)
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol#4)
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- VerbatimInvalidDeduplication
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess.
It is used by:
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Comparators.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Panic.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol#5)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/cryptography/Hashes.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol#5)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol#5)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in SignatureChecker.isValidSignatureNow(bytes,bytes32,bytes) (lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol#132-149):
	- (success,result) = address(bytes20(signer)).staticcall(abi.encodeCall(IERC7913SignatureVerifier.verify,(signer.slice(20),hash,signature))) (lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol#142-144)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

Function AccessControlUpgradeable.__AccessControl_init() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#82-83) is not in mixedCase
Function AccessControlUpgradeable.__AccessControl_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#85-86) is not in mixedCase
Constant AccessControlUpgradeable.AccessControlStorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#65) is not in UPPER_CASE_WITH_UNDERSCORES
Function AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init() (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#31-32) is not in mixedCase
Function AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#34-35) is not in mixedCase
Constant AccessControlEnumerableUpgradeable.AccessControlEnumerableStorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#23) is not in UPPER_CASE_WITH_UNDERSCORES
Function ContextUpgradeable.__Context_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#18-19) is not in mixedCase
Function ContextUpgradeable.__Context_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#21-22) is not in mixedCase
Function EIP712Upgradeable.__EIP712_init(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#68-70) is not in mixedCase
Function EIP712Upgradeable.__EIP712_init_unchained(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#72-80) is not in mixedCase
Function EIP712Upgradeable._EIP712Name() (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#151-154) is not in mixedCase
Function EIP712Upgradeable._EIP712Version() (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#162-165) is not in mixedCase
Function EIP712Upgradeable._EIP712NameHash() (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#172-187) is not in mixedCase
Function EIP712Upgradeable._EIP712VersionHash() (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#194-209) is not in mixedCase
Constant EIP712Upgradeable.EIP712StorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#48) is not in UPPER_CASE_WITH_UNDERSCORES
Function ERC165Upgradeable.__ERC165_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#22-23) is not in mixedCase
Function ERC165Upgradeable.__ERC165_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#25-26) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

Bytes.toNibbles(bytes) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#210-245) uses literals with too many digits:
	- chunk_toNibbles_asm_0 = 0x0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff & chunk_toNibbles_asm_0 << 64 | chunk_toNibbles_asm_0 (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#222-225)
Bytes.toNibbles(bytes) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#210-245) uses literals with too many digits:
	- chunk_toNibbles_asm_0 = 0x00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff & chunk_toNibbles_asm_0 << 32 | chunk_toNibbles_asm_0 (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#226-229)
Bytes.reverseBytes32(bytes32) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#258-272) uses literals with too many digits:
	- value = ((value >> 32) & 0x00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF) | ((value & 0x00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF) << 32) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#265-267)
Bytes.reverseBytes32(bytes32) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#258-272) uses literals with too many digits:
	- value = ((value >> 64) & 0x0000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF) | ((value & 0x0000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF) << 64) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#268-270)
Bytes.reverseBytes16(bytes16) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#275-286) uses literals with too many digits:
	- value = ((value & 0xFFFFFFFF00000000FFFFFFFF00000000) >> 32) | ((value & 0x00000000FFFFFFFF00000000FFFFFFFF) << 32) (lib/openzeppelin-contracts/contracts/utils/Bytes.sol#282-284)
Math.log2(uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#619-658) uses literals with too many digits:
	- r = r | byte(uint256,uint256)(x >> r,0x0000010102020202030303030303030300000000000000000000000000000000) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#656)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits
. analyzed (42 contracts with 100 detectors), 153 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.8.24",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.8.24",
        "install_stderr": null,
        "install_stdout": "Version '0.8.24' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-swqqgsay --include-path /tmp/slither-swqqgsay/lib --include-path /tmp/slither-swqqgsay/lib/openzeppelin-contracts-upgradeable --include-path /tmp/slither-swqqgsay/lib/openzeppelin-contracts --allow-paths /tmp/slither-swqqgsay,/tmp/slither-swqqgsay/lib,/tmp/slither-swqqgsay/lib/openzeppelin-contracts,/tmp/slither-swqqgsay/lib/openzeppelin-contracts-upgradeable,/tmp/slither-swqqgsay/src",
    "remappings": [
        "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
        "@openzeppelin-4.9.6/contracts/=lib/openzeppelin-contracts-4.9.6/contracts/",
        "@superfluid-finance/ethereum-contracts/contracts/=lib/superfluid-protocol-monorepo/packages/ethereum-contracts/contracts/",
        "@superfluid-finance/solidity-semantic-money/=lib/superfluid-protocol-monorepo/packages/solidity-semantic-money/",
        "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/",
        "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
        "forge-std/=lib/forge-std/src/",
        "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "echo/=src/",
        "openzeppelin-contracts-4.9.6/=lib/openzeppelin-contracts-4.9.6/contracts/",
        "superfluid-protocol-monorepo/=lib/superfluid-protocol-monorepo/packages/solidity-semantic-money/src/",
        "src/=src/"
    ],
    "source_files": [
        "src/unlock/v1/Distributor.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
        "lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol",
        "lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol",
        "src/interfaces/PlatformEvents.sol",
        "src/Merkle.sol",
        "src/interfaces/IGenericRegistry.sol",
        "src/interfaces/GenericRegistryKeys.sol",
        "src/unlock/v1/Types.sol",
        "src/unlock/v1/UnlockerLib.sol",
        "src/Versioned.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol",
        "lib/openzeppelin-contracts/contracts/utils/Address.sol",
        "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol",
        "lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
        "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol",
        "lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol",
        "lib/openzeppelin-contracts/contracts/utils/math/Math.sol",
        "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
        "lib/openzeppelin-contracts/contracts/utils/Strings.sol",
        "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol",
        "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 153,
    "workspace_hash": "e05d3fc33b57acec76c3c51dff4f79525da324f61b40acb3f02e3edc44c76b6e",
    "duration_seconds": 4.036237955093384,
    "solc_version_requested": "0.8.23"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Found two issues: claim data is not bound to the merkle-leaf entityUUID, and claim/withdraw signatures are replayable without a nonce.
View stdout
{"no_findings":false,"summary":"Found two issues: claim data is not bound to the merkle-leaf entityUUID, and claim/withdraw signatures are replayable without a nonce.","findings":[{"severity":"medium","category":"other","title":"Claim data not bound to merkle-leaf entityUUID","exploit_scenario":"A signer whose entry exists in the merkle tree can sign ClaimData with a different entityUUID than the merkle-leaf `user.entityUUID`. If the platform signer co-signs (or the backend mistakenly signs), the contract will verify the leaf for one entity but apply state/accounting to another entityUUID. By cycling through entityUUIDs with zero claimed state, a signer could claim their entitlement multiple times, draining the pool beyond their allocation.","recommendation":"Enforce `claimData.entityUUID == user.entityUUID` in `_release`, or derive the merkle leaf directly from the signed claim data (including entityUUID) so the signature and merkle proof are bound to the same entity. Reject any mismatch before accounting updates.","evidence":"The merkle proof validates `user`, but `_release` uses `claimData.entityUUID` for state and calculations without checking equality to `user.entityUUID`.","locations":["src/unlock/v1/Distributor.sol:300","src/unlock/v1/Distributor.sol:321","src/unlock/v1/Distributor.sol:325"]},{"severity":"low","category":"auth","title":"Replayable claim and carry withdrawal signatures (no nonce/used tracking)","exploit_scenario":"Anyone who obtains a valid EIP-712 signature for `ClaimData` or `CarryWithdrawalData` can replay it multiple times before expiry. Each replay succeeds as long as the remaining claimable/withdrawable amount covers the signed `amount`, allowing repeated withdrawals to the signed receiver and bypassing intended one-time authorization semantics.","recommendation":"Add a per-entity nonce (or used-digest mapping) to both ClaimData and CarryWithdrawalData, include it in the EIP-712 struct, and increment/store it on success. Alternatively, sign cumulative claimed/withdrawn totals to make signatures single-use.","evidence":"The signed structs contain no nonce/unique salt and the contract does not track used signatures or per-entity nonces.","locations":["src/unlock/v1/Types.sol:29","src/unlock/v1/Types.sol:84","src/unlock/v1/Distributor.sol:254","src/unlock/v1/Distributor.sol:393"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-1mwgez9i
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb3ad-1982-74c2-a73b-565913d35bab
--------
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
**Reading AUDIT_BUNDLE.txt**
exec
/bin/bash -lc ls in /tmp/codex-1mwgez9i succeeded in 8ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
lib
src
exec
/bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-1mwgez9i succeeded in 12ms:
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: src/Merkle.sol
================================================================================
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity ^0.8.23;

import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";

/// @notice A library for computing merkle tree roots and proofs.
/// @dev This library produces complete trees. If a node does not have a sibling, it is combined with itself.
library Merkle {
    /// @notice A merkle tree.
    /// @dev Contains the leaf hashes at the 0th level, pairwise hashes in the following, and the root in the last.
    struct Tree {
        bytes32[][] hashes;
    }

exec
/bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-1mwgez9i succeeded in 5ms:
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity ^0.8.23;

interface IGenericRegistry {
    function setBytes32(bytes32 key, bytes32 value) external;
    function setAddress(bytes32 key, address value) external;
    function setUint256(bytes32 key, uint256 value) external;
    function setInt256(bytes32 key, int256 value) external;
    function setBool(bytes32 key, bool value) external;

    function readBytes32(bytes32 key) external view returns (bytes32);
    function readAddress(bytes32 key) external view returns (address);
    function readUint256(bytes32 key) external view returns (uint256);
    function readInt256(bytes32 key) external view returns (int256);
    function readBool(bytes32 key) external view returns (bool);
}

================================================================================
FILE: src/interfaces/PlatformEvents.sol
================================================================================
exec
/bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-1mwgez9i succeeded in 11ms:
    bytes16[] private _carryWithdrawerUUIDs;

    struct Init {
        IERC20 token;
        bytes16 tokenDistributionUUID;
        UnlockerLib.Unlocker unlocker;
        IGenericRegistry genericRegistry;
        Claimer[] claimers;
        CarryWithdrawer[] carryWithdrawers;
        address adminIM;
        address managerIM;
        address adminENG;
        address managerENG;
        address platformSigner;
        address platformSender;
        bytes32 expectedClaimersRoot;
        uint16 platformCarryBPS;
    }

    constructor() {
exec
/bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-1mwgez9i succeeded in 6ms:
        for (uint256 i = 0; i < claimParams.length; i++) {
            carryAmounts[i] = _calculateCarryAmount(
                claimParams[i].entityUUID,
                claimParams[i].amountInvestedUSDC,
                claimParams[i].notChargedCarry,
                claimParams[i].amountToClaim,
                price
            );
        }

        return carryAmounts;
    }

    /// @notice Setter for the generic registry.
    function setGenericRegistry(IGenericRegistry registry) external onlyRole(MANAGER_ROLE) {
        genericRegistry = registry;
    }

    /// @notice Setter for the platform carry BPS
    /// @dev We use a separate setter for the platform carry over setting it in the setCarryWithdrawerSettings
exec
/bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-1mwgez9i succeeded in 5ms:
/// @notice Interface for Superfluid Unlocker contracts (SuperfluidToken).
/// @dev The unlocker address for Superfluid should be the SuperToken address.
interface ISuperfluidUnlocker {
    function balanceOf(address account) external view returns (uint256);
    function downgrade(uint256 amount) external;
}

/// @notice Library for managing calls to unlocker contracts.
/// @dev The distributor contracts will need to interface with a number of different unlocker contracts.
/// This library provides a dynamic function dispatch to make interacting with Unlocker contracts easier.
library UnlockerLib {
    /// @notice Struct for holding the unlocker contract address and the function types it implements.
    /// @dev This is used to dynamically dispatch calls to the correct function on the unlocker contract as specified by the releasableType and releaseType.
    /// @dev The unlocker address may be 0, in which case no function calls will be made.
    struct Unlocker {
        address unlocker;
        bytes6 releasableType;
        bytes6 releaseType;
    }




thinking
**Analyzing contract vulnerabilities and replay risks**

There is a complex mix of possible reentrancy, signature replay attacks, and state inconsistencies, especially due to the lack of nonce or single-use protections in signatures. I'm tracing how claim and withdraw functions handle external calls and state updates, noticing the potential for repeated claims using the same signature within allowed amounts. The interplay between merkle proofs, entity UUID mismatches, and signature verification raises concerns about malicious signers or platform misconfigurations enabling unauthorized or accelerated claims, though some protections rely on platform honesty and access control. Overall, the system seems vulnerable to medium-to-high risks from signature replays and entity state mismatches that could let claims exceed intended limits.
thinking
**Examining entityUUID mismatch and reentrancy details**

I'm exploring how the contract’s lack of verification between claimData.entityUUID and the user’s merkle leaf entityUUID could allow claims tied to mismatched identifiers, which might enable unusual claim patterns if the platform or user signers collude. Also, reentrancy through signature validation contracts could lead to repeated claims in a single transaction, resembling replay attacks but dependent on controlled signature use. Though risky, many scenarios require trusted party cooperation, suggesting more of a design flaw than an immediate external exploit.
thinking
**Summarizing main findings and preparing detailed report**

I'm consolidating key observations: the critical missing check linking claimData.entityUUID to the merkle leaf enables potential overclaims if platform and user collude, and the lack of nonce or consumed-signature tracking opens signature replay risks for claim and withdrawCarry functions. These issues, mostly dependent on trusted signers or platform error, deserve clear documentation with approximate source locations to guide auditing and mitigation.
exec
/bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '430,720p'" in /tmp/codex-1mwgez9i succeeded in 10ms:
   430	
   431	        // granting IM roles
   432	        _grantRole(DEFAULT_ADMIN_ROLE, init.adminIM);
   433	        _grantRole(MANAGER_ROLE, init.managerIM);
   434	
   435	        // granting ENG roles
   436	        _grantRole(ENG_ADMIN_ROLE, init.adminENG);
   437	        _grantRole(ENG_MANAGER_ROLE, init.managerENG);
   438	
   439	        // granting platform roles
   440	        _grantRole(SIGNER_ROLE, init.platformSigner);
   441	        _grantRole(PLATFORM_CARRY_WITHDRAWER_ROLE, init.platformSender);
   442	        _grantRole(PLATFORM_ROLE, init.platformSender);
   443	        _grantRole(PAUSER_ROLE, init.platformSender);
   444	
   445	        UnlockerLib.validate(init.unlocker);
   446	        unlocker = init.unlocker;
   447	        genericRegistry = init.genericRegistry;
   448	        token = init.token;
   449	        tokenDistributionUUID = init.tokenDistributionUUID;

thinking
**Mapping line numbers to source files**
exec
/bin/bash -lc "nl -ba src/unlock/v1/Distributor.sol | sed -n '120,260p'" in /tmp/codex-1mwgez9i succeeded in 7ms:
   120	    /// @notice  The token that will be unlocked/released.
   121	    IERC20 public token;
   122	
   123	    /// @notice Flag to enable/disable token claims and carry withdrawals.
   124	    bool public isEnabled;
   125	
   126	    /// @notice Flag to enable/disable the forced distribution mode.
   127	    /// @dev When enabled, the token claim and carry withdrawal functions do not require signatures from the user signer.
   128	    bool public isForcedDistributionModeEnabled;
   129	
   130	    /// @notice The UUID of the token distribution.
   131	    bytes16 public tokenDistributionUUID;
   132	
   133	    /// @notice  The total amount of distribution shares for the SPV across all users.
   134	    /// @dev This is the sum of all `distributionShares` in `usersSettings`.
   135	    /// @dev It is used to compute the relative share of the total unlocked tokens for each state. It is derived from
   136	    /// the users's ownership of the SPV.
   137	    uint64 public totalDistributionShares;
   138	
   139	    /// @notice The total carry in basis points.

thinking
**Examining lines near _release method**
exec
/bin/bash -lc "nl -ba src/unlock/v1/Distributor.sol | sed -n '300,420p'" in /tmp/codex-1mwgez9i succeeded in 12ms:
   300	                revert InvalidClaimerMerkleProof(leaf, computedRoot, claimersRoot);
   301	            }
   302	        }
   303	
   304	        {
   305	            bytes32 digest = ClaimDataLib.digestTypedData(claimData, _domainSeparatorV4());
   306	
   307	            if (
   308	                !isForcedDistributionModeEnabled
   309	                    && !SignatureChecker.isValidSignatureNow(user.signer, digest, claimSignatureUser)
   310	            ) {
   311	                address signer = ECDSA.recover(digest, claimSignatureUser);
   312	                revert UnauthorizedUserSigner(signer, user.signer);
   313	            }
   314	
   315	            address signerPlatform = ECDSA.recover(digest, claimSignaturePlatform);
   316	            if (!hasRole(SIGNER_ROLE, signerPlatform)) {
   317	                revert UnauthorizedPlatformSigner(signerPlatform);
   318	            }
   319	        }

thinking
**Summarizing security findings and recommendations**

I’m putting together two main findings: one about missing binding between claim data and Merkle leaf entityUUIDs that can cause misaccounting, and another about replayable signatures enabling repeated claims or withdrawals without nonce tracking. I’ll include detailed exploit scenarios, severity assessments, and practical recommendations for both. Finally, I’ll craft the output JSON with evidence and source code locations as requested.
exec
/bin/bash -lc "nl -ba src/unlock/v1/Types.sol | sed -n '1,200p'" in /tmp/codex-1mwgez9i succeeded in 9ms:
     1	// SPDX-License-Identifier: GPL-3.0-only
     2	pragma solidity ^0.8.23;
     3	
     4	import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
     5	import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";
     6	import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
     7	
     8	/// @notice USDC pricing data for a token.
     9	/// @dev The amount of USDC for a given amount of tokens is computed by `amountUSDCUnits = (amountTokenUnits * tokenPriceUSDCNumerator) / tokenPriceUSDCDenominator`.
    10	/// e.g. assuming a 18 decimals for the token, and 6 decimals for usdc,
    11	/// an exchange rate of 1 token = 1234.5678 USDC would mean 1e18 tokenUnits = 1,234,567,800 USDCUnits, corresponding to tokenPriceUSDCNumerator = 1234567800 and tokenPriceUSDCDenominator = 1e18.
    12	/// @param tokenPriceUSDCNumerator The numerator of the token unit price in USDC units.
    13	/// @param tokenPriceUSDCDenominator The denominator of the token unit price in USDC units.
    14	struct Price {
    15	    uint256 tokenPriceUSDCNumerator;
    16	    uint256 tokenPriceUSDCDenominator;
    17	}
    18	
    19	library PriceLib {
    20	    function convertTokenToUSDC(Price memory data, uint256 amount) internal pure returns (uint256) {

thinking
**Preparing final JSON output**
codex
{"no_findings":false,"summary":"Found two issues: claim data is not bound to the merkle-leaf entityUUID, and claim/withdraw signatures are replayable without a nonce.","findings":[{"severity":"medium","category":"other","title":"Claim data not bound to merkle-leaf entityUUID","exploit_scenario":"A signer whose entry exists in the merkle tree can sign ClaimData with a different entityUUID than the merkle-leaf `user.entityUUID`. If the platform signer co-signs (or the backend mistakenly signs), the contract will verify the leaf for one entity but apply state/accounting to another entityUUID. By cycling through entityUUIDs with zero claimed state, a signer could claim their entitlement multiple times, draining the pool beyond their allocation.","recommendation":"Enforce `claimData.entityUUID == user.entityUUID` in `_release`, or derive the merkle leaf directly from the signed claim data (including entityUUID) so the signature and merkle proof are bound to the same entity. Reject any mismatch before accounting updates.","evidence":"The merkle proof validates `user`, but `_release` uses `claimData.entityUUID` for state and calculations without checking equality to `user.entityUUID`.","locations":["src/unlock/v1/Distributor.sol:300","src/unlock/v1/Distributor.sol:321","src/unlock/v1/Distributor.sol:325"]},{"severity":"low","category":"auth","title":"Replayable claim and carry withdrawal signatures (no nonce/used tracking)","exploit_scenario":"Anyone who obtains a valid EIP-712 signature for `ClaimData` or `CarryWithdrawalData` can replay it multiple times before expiry. Each replay succeeds as long as the remaining claimable/withdrawable amount covers the signed `amount`, allowing repeated withdrawals to the signed receiver and bypassing intended one-time authorization semantics.","recommendation":"Add a per-entity nonce (or used-digest mapping) to both ClaimData and CarryWithdrawalData, include it in the EIP-712 struct, and increment/store it on success. Alternatively, sign cumulative claimed/withdrawn totals to make signatures single-use.","evidence":"The signed structs contain no nonce/unique salt and the contract does not track used signatures or per-entity nonces.","locations":["src/unlock/v1/Types.sol:29","src/unlock/v1/Types.sol:84","src/unlock/v1/Distributor.sol:254","src/unlock/v1/Distributor.sol:393"]}]}
tokens used
39,323
Metadata
{
    "codex": {
        "ran_at": "2026-01-12T19:31:27.467889+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 31,
        "import_count": 35,
        "first_party_contracts_count": 8
    },
    "summary": "Found two issues: claim data is not bound to the merkle-leaf entityUUID, and claim/withdraw signatures are replayable without a nonce.",
    "raw_final": {
        "summary": "Found two issues: claim data is not bound to the merkle-leaf entityUUID, and claim/withdraw signatures are replayable without a nonce.",
        "findings": [
            {
                "title": "Claim data not bound to merkle-leaf entityUUID",
                "category": "other",
                "evidence": "The merkle proof validates `user`, but `_release` uses `claimData.entityUUID` for state and calculations without checking equality to `user.entityUUID`.",
                "severity": "medium",
                "locations": [
                    "src/unlock/v1/Distributor.sol:300",
                    "src/unlock/v1/Distributor.sol:321",
                    "src/unlock/v1/Distributor.sol:325"
                ],
                "recommendation": "Enforce `claimData.entityUUID == user.entityUUID` in `_release`, or derive the merkle leaf directly from the signed claim data (including entityUUID) so the signature and merkle proof are bound to the same entity. Reject any mismatch before accounting updates.",
                "exploit_scenario": "A signer whose entry exists in the merkle tree can sign ClaimData with a different entityUUID than the merkle-leaf `user.entityUUID`. If the platform signer co-signs (or the backend mistakenly signs), the contract will verify the leaf for one entity but apply state/accounting to another entityUUID. By cycling through entityUUIDs with zero claimed state, a signer could claim their entitlement multiple times, draining the pool beyond their allocation."
            },
            {
                "title": "Replayable claim and carry withdrawal signatures (no nonce/used tracking)",
                "category": "auth",
                "evidence": "The signed structs contain no nonce/unique salt and the contract does not track used signatures or per-entity nonces.",
                "severity": "low",
                "locations": [
                    "src/unlock/v1/Types.sol:29",
                    "src/unlock/v1/Types.sol:84",
                    "src/unlock/v1/Distributor.sol:254",
                    "src/unlock/v1/Distributor.sol:393"
                ],
                "recommendation": "Add a per-entity nonce (or used-digest mapping) to both ClaimData and CarryWithdrawalData, include it in the EIP-712 struct, and increment/store it on success. Alternatively, sign cumulative claimed/withdrawn totals to make signatures single-use.",
                "exploit_scenario": "Anyone who obtains a valid EIP-712 signature for `ClaimData` or `CarryWithdrawalData` can replay it multiple times before expiry. Each replay succeeds as long as the remaining claimable/withdrawable amount covers the signed `amount`, allowing repeated withdrawals to the signed receiver and bypassing intended one-time authorization semantics."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
10
EXT*/BALANCE
5
Total opcodes
15841
Flags
delegatecall_present create_opcodes_present heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x000f
0000000b: JUMPI
0000000c: PUSH0
0000000d: DUP1
0000000e: REVERT
0000000f: JUMPDEST
00000010: POP
00000011: PUSH1 0x04
00000013: CALLDATASIZE
00000014: LT
00000015: PUSH2 0x0392
00000018: JUMPI
00000019: PUSH0
0000001a: CALLDATALOAD
0000001b: PUSH1 0xe0
0000001d: SHR
0000001e: DUP1
0000001f: PUSH4 0x8456cb59
00000024: GT
00000025: PUSH2 0x01df
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xb82538bd
0000002f: GT
00000030: PUSH2 0x0109
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xe2ca5974
0000003a: GT
0000003b: PUSH2 0x00a9
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf83f55a9
00000045: GT
00000046: PUSH2 0x0079
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf83f55a9
00000050: EQ
00000051: PUSH2 0x0927
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xfc0c546a
0000005b: EQ
0000005c: PUSH2 0x093b
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xfdf25f33
00000066: EQ
00000067: PUSH2 0x094e
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0xff3c2f89
00000071: EQ
00000072: PUSH2 0x0961
00000075: JUMPI
00000076: PUSH0
00000077: DUP1
00000078: REVERT
00000079: JUMPDEST
0000007a: DUP1
0000007b: PUSH4 0xe2ca5974
00000080: EQ
00000081: PUSH2 0x08d1
00000084: JUMPI
00000085: DUP1
00000086: PUSH4 0xe63ab1e9
0000008b: EQ
0000008c: PUSH2 0x08e4
0000008f: JUMPI
00000090: DUP1
00000091: PUSH4 0xec87621c
00000096: EQ
00000097: PUSH2 0x090b
0000009a: JUMPI
0000009b: DUP1
0000009c: PUSH4 0xf698da25
000000a1: EQ
000000a2: PUSH2 0x091f
000000a5: JUMPI
000000a6: PUSH0
000000a7: DUP1
000000a8: REVERT
000000a9: JUMPDEST
000000aa: DUP1
000000ab: PUSH4 0xcf055d5c
000000b0: GT
000000b1: PUSH2 0x00e4
000000b4: JUMPI
000000b5: DUP1
000000b6: PUSH4 0xcf055d5c
000000bb: EQ
000000bc: PUSH2 0x088d
000000bf: JUMPI
000000c0: DUP1
000000c1: PUSH4 0xd547741f
000000c6: EQ
000000c7: PUSH2 0x08a1
000000ca: JUMPI
000000cb: DUP1
000000cc: PUSH4 0xd54ad2a1
000000d1: EQ
000000d2: PUSH2 0x08b4
000000d5: JUMPI
000000d6: DUP1
000000d7: PUSH4 0xe00549ab
000000dc: EQ
000000dd: PUSH2 0x08bd
000000e0: JUMPI
000000e1: PUSH0
000000e2: DUP1
000000e3: REVERT
000000e4: JUMPDEST
000000e5: DUP1
000000e6: PUSH4 0xb82538bd
000000eb: EQ
000000ec: PUSH2 0x0841
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0xc824166f
000000f6: EQ
000000f7: PUSH2 0x0867
000000fa: JUMPI
000000fb: DUP1
000000fc: PUSH4 0xca15c873
00000101: EQ
00000102: PUSH2 0x087a
00000105: JUMPI
00000106: PUSH0
00000107: DUP1
00000108: REVERT
00000109: JUMPDEST
0000010a: DUP1
0000010b: PUSH4 0xa217fddf
00000110: GT
00000111: PUSH2 0x017f
00000114: JUMPI
00000115: DUP1
00000116: PUSH4 0xae2560af
0000011b: GT
0000011c: PUSH2 0x014f
0000011f: JUMPI
00000120: DUP1
00000121: PUSH4 0xae2560af
00000126: EQ
00000127: PUSH2 0x07d6
0000012a: JUMPI
0000012b: DUP1
0000012c: PUSH4 0xb212f067
00000131: EQ
00000132: PUSH2 0x07e9
00000135: JUMPI
00000136: DUP1
00000137: PUSH4 0xb3061b91
0000013c: EQ
0000013d: PUSH2 0x081b
00000140: JUMPI
00000141: DUP1
00000142: PUSH4 0xb6870c5a
00000147: EQ
00000148: PUSH2 0x082e
0000014b: JUMPI
0000014c: PUSH0
0000014d: DUP1
0000014e: REVERT
0000014f: JUMPDEST
00000150: DUP1
00000151: PUSH4 0xa217fddf
00000156: EQ
00000157: PUSH2 0x078a
0000015a: JUMPI
0000015b: DUP1
0000015c: PUSH4 0xa3770523
00000161: EQ
00000162: PUSH2 0x0791
00000165: JUMPI
00000166: DUP1
00000167: PUSH4 0xa8981e73
0000016c: EQ
0000016d: PUSH2 0x079a
00000170: JUMPI
00000171: DUP1
00000172: PUSH4 0xa8fc9e29
00000177: EQ
00000178: PUSH2 0x07af
0000017b: JUMPI
0000017c: PUSH0
0000017d: DUP1
0000017e: REVERT
0000017f: JUMPDEST
00000180: DUP1
00000181: PUSH4 0x9010d07c
00000186: GT
00000187: PUSH2 0x01ba
0000018a: JUMPI
0000018b: DUP1
0000018c: PUSH4 0x9010d07c
00000191: EQ
00000192: PUSH2 0x0748
00000195: JUMPI
00000196: DUP1
00000197: PUSH4 0x91d14854
0000019c: EQ
0000019d: PUSH2 0x075b
000001a0: JUMPI
000001a1: DUP1
000001a2: PUSH4 0x9dc69e1f
000001a7: EQ
000001a8: PUSH2 0x076e
000001ab: JUMPI
000001ac: DUP1
000001ad: PUSH4 0xa1ebf35d
000001b2: EQ
000001b3: PUSH2 0x0776
000001b6: JUMPI
000001b7: PUSH0
000001b8: DUP1
000001b9: REVERT
000001ba: JUMPDEST
000001bb: DUP1
000001bc: PUSH4 0x8456cb59
000001c1: EQ
000001c2: PUSH2 0x071c
000001c5: JUMPI
000001c6: DUP1
000001c7: PUSH4 0x84b0196e
000001cc: EQ
000001cd: PUSH2 0x0724
000001d0: JUMPI
000001d1: DUP1
000001d2: PUSH4 0x8f22602e
000001d7: EQ
000001d8: PUSH2 0x073f
000001db: JUMPI
000001dc: PUSH0
000001dd: DUP1
000001de: REVERT
000001df: JUMPDEST
000001e0: DUP1
000001e1: PUSH4 0x3f953f9a
000001e6: GT
000001e7: PUSH2 0x02c0
000001ea: JUMPI
000001eb: DUP1
000001ec: PUSH4 0x5f3e849f
000001f1: GT
000001f2: PUSH2 0x0260
000001f5: JUMPI
000001f6: DUP1
000001f7: PUSH4 0x6adc3168
000001fc: GT
000001fd: PUSH2 0x0230
00000200: JUMPI
00000201: DUP1
00000202: PUSH4 0x6adc3168
00000207: EQ
00000208: PUSH2 0x0693
0000020b: JUMPI
0000020c: DUP1
0000020d: PUSH4 0x70824c5c
00000212: EQ
00000213: PUSH2 0x06c2
00000216: JUMPI
00000217: DUP1
00000218: PUSH4 0x73852d27
0000021d: EQ
0000021e: PUSH2 0x06e9
00000221: JUMPI
00000222: DUP1
00000223: PUSH4 0x8164183e
00000228: EQ
00000229: PUSH2 0x0709
0000022c: JUMPI
0000022d: PUSH0
0000022e: DUP1
0000022f: REVERT
00000230: JUMPDEST
00000231: DUP1
00000232: PUSH4 0x5f3e849f
00000237: EQ
00000238: PUSH2 0x0646
0000023b: JUMPI
0000023c: DUP1
0000023d: PUSH4 0x601ed31b
00000242: EQ
00000243: PUSH2 0x0659
00000246: JUMPI
00000247: DUP1
00000248: PUSH4 0x652cce51
0000024d: EQ
0000024e: PUSH2 0x066c
00000251: JUMPI
00000252: DUP1
00000253: PUSH4 0x6aa633b6
00000258: EQ
00000259: PUSH2 0x067f
0000025c: JUMPI
0000025d: PUSH0
0000025e: DUP1
0000025f: REVERT
00000260: JUMPDEST
00000261: DUP1
00000262: PUSH4 0x4407390d
00000267: GT
00000268: PUSH2 0x029b
0000026b: JUMPI
0000026c: DUP1
0000026d: PUSH4 0x4407390d
00000272: EQ
00000273: PUSH2 0x0586
00000276: JUMPI
00000277: DUP1
00000278: PUSH4 0x4925abac
0000027d: EQ
0000027e: PUSH2 0x0599
00000281: JUMPI
00000282: DUP1
00000283: PUSH4 0x54fd4d50
00000288: EQ
00000289: PUSH2 0x05ac
0000028c: JUMPI
0000028d: DUP1
0000028e: PUSH4 0x58941f1e
00000293: EQ
00000294: PUSH2 0x0633
00000297: JUMPI
00000298: PUSH0
00000299: DUP1
0000029a: REVERT
0000029b: JUMPDEST
0000029c: DUP1
0000029d: PUSH4 0x3f953f9a
000002a2: EQ
000002a3: PUSH2 0x054a
000002a6: JUMPI
000002a7: DUP1
000002a8: PUSH4 0x40b40f55
000002ad: EQ
000002ae: PUSH2 0x055d
000002b1: JUMPI
000002b2: DUP1
000002b3: PUSH4 0x4111bf9d
000002b8: EQ
000002b9: PUSH2 0x057d
000002bc: JUMPI
000002bd: PUSH0
000002be: DUP1
000002bf: REVERT
000002c0: JUMPDEST
000002c1: DUP1
000002c2: PUSH4 0x26e670ea
000002c7: GT
000002c8: PUSH2 0x0336
000002cb: JUMPI
000002cc: DUP1
000002cd: PUSH4 0x342cf27a
000002d2: GT
000002d3: PUSH2 0x0306
000002d6: JUMPI
000002d7: DUP1
000002d8: PUSH4 0x342cf27a
000002dd: EQ
000002de: PUSH2 0x0507
000002e1: JUMPI
000002e2: DUP1
000002e3: PUSH4 0x36568abe
000002e8: EQ
000002e9: PUSH2 0x051a
000002ec: JUMPI
000002ed: DUP1
000002ee: PUSH4 0x3ba930ad
000002f3: EQ
000002f4: PUSH2 0x052d
000002f7: JUMPI
000002f8: DUP1
000002f9: PUSH4 0x3d24f8f7
000002fe: EQ
000002ff: PUSH2 0x0542
00000302: JUMPI
00000303: PUSH0
00000304: DUP1
00000305: REVERT
00000306: JUMPDEST
00000307: DUP1
00000308: PUSH4 0x26e670ea
0000030d: EQ
0000030e: PUSH2 0x04ae
00000311: JUMPI
00000312: DUP1
00000313: PUSH4 0x2f2ff15d
00000318: EQ
00000319: PUSH2 0x04ce
0000031c: JUMPI
0000031d: DUP1
0000031e: PUSH4 0x2fc2ec02
00000323: EQ
00000324: PUSH2 0x04e1
00000327: JUMPI
00000328: DUP1
00000329: PUSH4 0x328d8f72
0000032e: EQ
0000032f: PUSH2 0x04f4
00000332: JUMPI
00000333: PUSH0
00000334: DUP1
00000335: REVERT
00000336: JUMPDEST
00000337: DUP1
00000338: PUSH4 0x19a1e587
0000033d: GT
0000033e: PUSH2 0x0371
00000341: JUMPI
00000342: DUP1
00000343: PUSH4 0x19a1e587
00000348: EQ
00000349: PUSH2 0x042d
0000034c: JUMPI
0000034d: DUP1
0000034e: PUSH4 0x20ab083e
00000353: EQ
00000354: PUSH2 0x0441
00000357: JUMPI
00000358: DUP1
00000359: PUSH4 0x2257310f
0000035e: EQ
0000035f: PUSH2 0x046c
00000362: JUMPI
00000363: DUP1
00000364: PUSH4 0x248a9ca3
00000369: EQ
0000036a: PUSH2 0x048d
0000036d: JUMPI
0000036e: PUSH0
0000036f: DUP1
00000370: REVERT
00000371: JUMPDEST
00000372: DUP1
00000373: PUSH3 0x076943
00000377: EQ
00000378: PUSH2 0x0396
0000037b: JUMPI
0000037c: DUP1
0000037d: PUSH4 0x01ffc9a7
00000382: EQ
00000383: PUSH2 0x03f5
00000386: JUMPI
00000387: DUP1
00000388: PUSH4 0x052548e9
0000038d: EQ
0000038e: PUSH2 0x0418
00000391: JUMPI
00000392: JUMPDEST
00000393: PUSH0
00000394: DUP1
00000395: REVERT
00000396: JUMPDEST
00000397: PUSH0
00000398: SLOAD
00000399: PUSH2 0x03c0
0000039c: SWAP1
0000039d: PUSH1 0x01
0000039f: PUSH1 0x01
000003a1: PUSH1 0xa0
000003a3: SHL
000003a4: SUB
000003a5: DUP2
000003a6: AND
000003a7: SWAP1
000003a8: PUSH1 0x01
000003aa: PUSH1 0xa0
000003ac: SHL
000003ad: DUP2
000003ae: DIV
000003af: PUSH1 0xd0
000003b1: SWAP1
000003b2: DUP2
000003b3: SHL
000003b4: SWAP2
000003b5: PUSH1 0x01
000003b7: PUSH1 0xd0
000003b9: SHL
000003ba: SWAP1
000003bb: DIV
000003bc: SWAP1
000003bd: SHL
000003be: DUP4
000003bf: JUMP
000003c0: JUMPDEST
000003c1: PUSH1 0x40
000003c3: DUP1
000003c4: MLOAD
000003c5: PUSH1 0x01
000003c7: PUSH1 0x01
000003c9: PUSH1 0xa0
000003cb: SHL
000003cc: SUB
000003cd: SWAP1
000003ce: SWAP5
000003cf: AND
000003d0: DUP5
000003d1: MSTORE
000003d2: PUSH1 0x01
000003d4: PUSH1 0x01
000003d6: PUSH1 0xd0
000003d8: SHL
000003d9: SUB
000003da: NOT
000003db: SWAP3
000003dc: DUP4
000003dd: AND
000003de: PUSH1 0x20
000003e0: DUP6
000003e1: ADD
000003e2: MSTORE
000003e3: SWAP2
000003e4: AND
000003e5: SWAP1
000003e6: DUP3
000003e7: ADD
000003e8: MSTORE
000003e9: PUSH1 0x60
000003eb: ADD
000003ec: JUMPDEST
000003ed: PUSH1 0x40
000003ef: MLOAD
000003f0: DUP1
000003f1: SWAP2
000003f2: SUB
000003f3: SWAP1
000003f4: RETURN
000003f5: JUMPDEST
000003f6: PUSH2 0x0408
000003f9: PUSH2 0x0403
000003fc: CALLDATASIZE
000003fd: PUSH1 0x04
000003ff: PUSH2 0x4687
00000402: JUMP
00000403: JUMPDEST
00000404: PUSH2 0x0974
00000407: JUMP
00000408: JUMPDEST
00000409: PUSH1 0x40
0000040b: MLOAD
0000040c: SWAP1
0000040d: ISZERO
0000040e: ISZERO
0000040f: DUP2
00000410: MSTORE
00000411: PUSH1 0x20
00000413: ADD
00000414: PUSH2 0x03ec
00000417: JUMP
00000418: JUMPDEST
00000419: PUSH2 0x042b
0000041c: PUSH2 0x0426
0000041f: CALLDATASIZE
00000420: PUSH1 0x04
00000422: PUSH2 0x49ef
00000425: JUMP
00000426: JUMPDEST
00000427: PUSH2 0x099e
0000042a: JUMP
0000042b: JUMPDEST
0000042c: STOP
0000042d: JUMPDEST
0000042e: PUSH1 0x02
00000430: SLOAD
00000431: PUSH2 0x0408
00000434: SWAP1
00000435: PUSH1 0x01
00000437: PUSH1 0xa8
00000439: SHL
0000043a: SWAP1
0000043b: DIV
0000043c: PUSH1 0xff
0000043e: AND
0000043f: DUP2
00000440: JUMP
00000441: JUMPDEST
00000442: PUSH1 0x01
00000444: SLOAD
00000445: PUSH2 0x0454
00000448: SWAP1
00000449: PUSH1 0x01
0000044b: PUSH1 0x01
0000044d: PUSH1 0xa0
0000044f: SHL
00000450: SUB
00000451: AND
00000452: DUP2
00000453: JUMP
00000454: JUMPDEST
00000455: PUSH1 0x40
00000457: MLOAD
00000458: PUSH1 0x01
0000045a: PUSH1 0x01
0000045c: PUSH1 0xa0
0000045e: SHL
0000045f: SUB
00000460: SWAP1
00000461: SWAP2
00000462: AND
00000463: DUP2
00000464: MSTORE
00000465: PUSH1 0x20
00000467: ADD
00000468: PUSH2 0x03ec
0000046b: JUMP
0000046c: JUMPDEST
0000046d: PUSH1 0x07
0000046f: SLOAD
00000470: PUSH2 0x047a
00000473: SWAP1
00000474: PUSH2 0xffff
00000477: AND
00000478: DUP2
00000479: JUMP
0000047a: JUMPDEST
0000047b: PUSH1 0x40
0000047d: MLOAD
0000047e: PUSH2 0xffff
00000481: SWAP1
00000482: SWAP2
00000483: AND
00000484: DUP2
00000485: MSTORE
00000486: PUSH1 0x20
00000488: ADD
00000489: PUSH2 0x03ec
0000048c: JUMP
0000048d: JUMPDEST
0000048e: PUSH2 0x04a0
00000491: PUSH2 0x049b
00000494: CALLDATASIZE
00000495: PUSH1 0x04
00000497: PUSH2 0x4b4f
0000049a: JUMP
0000049b: JUMPDEST
0000049c: PUSH2 0x0d7c
0000049f: JUMP
000004a0: JUMPDEST
000004a1: PUSH1 0x40
000004a3: MLOAD
000004a4: SWAP1
000004a5: DUP2
000004a6: MSTORE
000004a7: PUSH1 0x20
000004a9: ADD
000004aa: PUSH2 0x03ec
000004ad: JUMP
000004ae: JUMPDEST
000004af: PUSH2 0x04c1
000004b2: PUSH2 0x04bc
000004b5: CALLDATASIZE
000004b6: PUSH1 0x04
000004b8: PUSH2 0x4bad
000004bb: JUMP
000004bc: JUMPDEST
000004bd: PUSH2 0x0d9c
000004c0: JUMP
000004c1: JUMPDEST
000004c2: PUSH1 0x40
000004c4: MLOAD
000004c5: PUSH2 0x03ec
000004c8: SWAP2
000004c9: SWAP1
000004ca: PUSH2 0x4c25
000004cd: JUMP
000004ce: JUMPDEST
000004cf: PUSH2 0x042b
000004d2: PUSH2 0x04dc
000004d5: CALLDATASIZE
000004d6: PUSH1 0x04
000004d8: PUSH2 0x4c37
000004db: JUMP
000004dc: JUMPDEST
000004dd: PUSH2 0x0e66
000004e0: JUMP
000004e1: JUMPDEST
000004e2: PUSH2 0x042b
000004e5: PUSH2 0x04ef
000004e8: CALLDATASIZE
000004e9: PUSH1 0x04
000004eb: PUSH2 0x4c65
000004ee: JUMP
000004ef: JUMPDEST
000004f0: PUSH2 0x0e88
000004f3: JUMP
000004f4: JUMPDEST
000004f5: PUSH2 0x042b
000004f8: PUSH2 0x0502
000004fb: CALLDATASIZE
000004fc: PUSH1 0x04
000004fe: PUSH2 0x4cd8
00000501: JUMP
00000502: JUMPDEST
00000503: PUSH2 0x0efa
00000506: JUMP
00000507: JUMPDEST
00000508: PUSH2 0x04c1
0000050b: PUSH2 0x0515
0000050e: CALLDATASIZE
0000050f: PUSH1 0x04
00000511: PUSH2 0x4cf3
00000514: JUMP
00000515: JUMPDEST
00000516: PUSH2 0x0f1e
00000519: JUMP
0000051a: JUMPDEST
0000051b: PUSH2 0x042b
0000051e: PUSH2 0x0528
00000521: CALLDATASIZE
00000522: PUSH1 0x04
00000524: PUSH2 0x4c37
00000527: JUMP
00000528: JUMPDEST
00000529: PUSH2 0x0ff8
0000052c: JUMP
0000052d: JUMPDEST
0000052e: PUSH1 0x03
00000530: SLOAD
00000531: PUSH2 0x047a
00000534: SWAP1
00000535: PUSH1 0x01
00000537: PUSH1 0xc0
00000539: SHL
0000053a: SWAP1
0000053b: DIV
0000053c: PUSH2 0xffff
0000053f: AND
00000540: DUP2
00000541: JUMP
00000542: JUMPDEST
00000543: PUSH2 0x042b
00000546: PUSH2 0x1030
00000549: JUMP
0000054a: JUMPDEST
0000054b: PUSH2 0x042b
0000054e: PUSH2 0x0558
00000551: CALLDATASIZE
00000552: PUSH1 0x04
00000554: PUSH2 0x4db0
00000557: JUMP
00000558: JUMPDEST
00000559: PUSH2 0x1082
0000055c: JUMP
0000055d: JUMPDEST
0000055e: PUSH2 0x0570
00000561: PUSH2 0x056b
00000564: CALLDATASIZE
00000565: PUSH1 0x04
00000567: PUSH2 0x4bad
0000056a: JUMP
0000056b: JUMPDEST
0000056c: PUSH2 0x10f3
0000056f: JUMP
00000570: JUMPDEST
00000571: PUSH1 0x40
00000573: MLOAD
00000574: PUSH2 0x03ec
00000577: SWAP2
00000578: SWAP1
00000579: PUSH2 0x4de2
0000057c: JUMP
0000057d: JUMPDEST
0000057e: PUSH2 0x04a0
00000581: PUSH1 0x0a
00000583: SLOAD
00000584: DUP2
00000585: JUMP
00000586: JUMPDEST
00000587: PUSH2 0x042b
0000058a: PUSH2 0x0594
0000058d: CALLDATASIZE
0000058e: PUSH1 0x04
00000590: PUSH2 0x4e39
00000593: JUMP
00000594: JUMPDEST
00000595: PUSH2 0x11ec
00000598: JUMP
00000599: JUMPDEST
0000059a: PUSH2 0x04c1
0000059d: PUSH2 0x05a7
000005a0: CALLDATASIZE
000005a1: PUSH1 0x04
000005a3: PUSH2 0x4bad
000005a6: JUMP
000005a7: JUMPDEST
000005a8: PUSH2 0x1226
000005ab: JUMP
000005ac: JUMPDEST
000005ad: PUSH1 0x40
000005af: DUP1
000005b0: MLOAD
000005b1: PUSH4 0xffffffff
000005b6: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000002
000005d7: DUP2
000005d8: AND
000005d9: DUP3
000005da: MSTORE
000005db: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000000
000005fc: DUP2
000005fd: AND
000005fe: PUSH1 0x20
00000600: DUP4
00000601: ADD
00000602: MSTORE
00000603: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000000
00000624: AND
00000625: SWAP2
00000626: DUP2
00000627: ADD
00000628: SWAP2
00000629: SWAP1
0000062a: SWAP2
0000062b: MSTORE
0000062c: PUSH1 0x60
0000062e: ADD
0000062f: PUSH2 0x03ec
00000632: JUMP
00000633: JUMPDEST
00000634: PUSH2 0x042b
00000637: PUSH2 0x0641
0000063a: CALLDATASIZE
0000063b: PUSH1 0x04
0000063d: PUSH2 0x4cd8
00000640: JUMP
00000641: JUMPDEST
00000642: PUSH2 0x131a
00000645: JUMP
00000646: JUMPDEST
00000647: PUSH2 0x042b
0000064a: PUSH2 0x0654
0000064d: CALLDATASIZE
0000064e: PUSH1 0x04
00000650: PUSH2 0x4e54
00000653: JUMP
00000654: JUMPDEST
00000655: PUSH2 0x1350
00000658: JUMP
00000659: JUMPDEST
0000065a: PUSH2 0x042b
0000065d: PUSH2 0x0667
00000660: CALLDATASIZE
00000661: PUSH1 0x04
00000663: PUSH2 0x4e92
00000666: JUMP
00000667: JUMPDEST
00000668: PUSH2 0x137b
0000066b: JUMP
0000066c: JUMPDEST
0000066d: PUSH2 0x042b
00000670: PUSH2 0x067a
00000673: CALLDATASIZE
00000674: PUSH1 0x04
00000676: PUSH2 0x4b4f
00000679: JUMP
0000067a: JUMPDEST
0000067b: PUSH2 0x1419
0000067e: JUMP
0000067f: JUMPDEST
00000680: PUSH1 0x02
00000682: SLOAD
00000683: PUSH2 0x0408
00000686: SWAP1
00000687: PUSH1 0x01
00000689: PUSH1 0xa0
0000068b: SHL
0000068c: SWAP1
0000068d: DIV
0000068e: PUSH1 0xff
00000690: AND
00000691: DUP2
00000692: JUMP
00000693: JUMPDEST
00000694: PUSH0
00000695: DUP1
00000696: MSTORE
00000697: PUSH1 0x09
00000699: PUSH1 0x20
0000069b: MSTORE
0000069c: PUSH32 0xec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b
000006bd: SLOAD
000006be: PUSH2 0x04a0
000006c1: JUMP
000006c2: JUMPDEST
000006c3: PUSH2 0x04a0
000006c6: PUSH32 0x797343f8d6a29aafeb3aaf0910a8973e0081c60c2f6c1f775cd9f76ea348fc1e
000006e7: DUP2
000006e8: JUMP
000006e9: JUMPDEST
000006ea: PUSH2 0x06fc
000006ed: PUSH2 0x06f7
000006f0: CALLDATASIZE
000006f1: PUSH1 0x04
000006f3: PUSH2 0x4bad
000006f6: JUMP
000006f7: JUMPDEST
000006f8: PUSH2 0x15cc
000006fb: JUMP
000006fc: JUMPDEST
000006fd: PUSH1 0x40
000006ff: MLOAD
00000700: PUSH2 0x03ec
00000703: SWAP2
00000704: SWAP1
00000705: PUSH2 0x4ea8
00000708: JUMP
00000709: JUMPDEST
0000070a: PUSH2 0x042b
0000070d: PUSH2 0x0717
00000710: CALLDATASIZE
00000711: PUSH1 0x04
00000713: PUSH2 0x4db0
00000716: JUMP
00000717: JUMPDEST
00000718: PUSH2 0x16cc
0000071b: JUMP
0000071c: JUMPDEST
0000071d: PUSH2 0x042b
00000720: PUSH2 0x1815
00000723: JUMP
00000724: JUMPDEST
00000725: PUSH2 0x072c
00000728: PUSH2 0x184b
0000072b: JUMP
0000072c: JUMPDEST
0000072d: PUSH1 0x40
0000072f: MLOAD
00000730: PUSH2 0x03ec
00000733: SWAP8
00000734: SWAP7
00000735: SWAP6
00000736: SWAP5
00000737: SWAP4
00000738: SWAP3
00000739: SWAP2
0000073a: SWAP1
0000073b: PUSH2 0x4f43
0000073e: JUMP
0000073f: JUMPDEST
00000740: PUSH2 0x04a0
00000743: PUSH1 0x06
00000745: SLOAD
00000746: DUP2
00000747: JUMP
00000748: JUMPDEST
00000749: PUSH2 0x0454
0000074c: PUSH2 0x0756
0000074f: CALLDATASIZE
00000750: PUSH1 0x04
00000752: PUSH2 0x4fb2
00000755: JUMP
00000756: JUMPDEST
00000757: PUSH2 0x18f4
0000075a: JUMP
0000075b: JUMPDEST
0000075c: PUSH2 0x0408
0000075f: PUSH2 0x0769
00000762: CALLDATASIZE
00000763: PUSH1 0x04
00000765: PUSH2 0x4c37
00000768: JUMP
00000769: JUMPDEST
0000076a: PUSH2 0x1921
0000076d: JUMP
0000076e: JUMPDEST
0000076f: PUSH2 0x04a0
00000772: PUSH2 0x1957
00000775: JUMP
00000776: JUMPDEST
00000777: PUSH2 0x04a0
0000077a: PUSH0
0000077b: DUP1
0000077c: MLOAD
0000077d: PUSH1 0x20
0000077f: PUSH2 0x5afe
00000782: DUP4
00000783: CODECOPY
00000784: DUP2
00000785: MLOAD
00000786: SWAP2
00000787: MSTORE
00000788: DUP2
00000789: JUMP
0000078a: JUMPDEST
0000078b: PUSH2 0x04a0
0000078e: PUSH0
0000078f: DUP2
00000790: JUMP
00000791: JUMPDEST
00000792: PUSH2 0x04a0
00000795: PUSH1 0x05
00000797: SLOAD
00000798: DUP2
00000799: JUMP
0000079a: JUMPDEST
0000079b: PUSH2 0x07a2
0000079e: PUSH2 0x1970
000007a1: JUMP
000007a2: JUMPDEST
000007a3: PUSH1 0x40
000007a5: MLOAD
000007a6: PUSH2 0x03ec
000007a9: SWAP2
000007aa: SWAP1
000007ab: PUSH2 0x4fd2
000007ae: JUMP
000007af: JUMPDEST
000007b0: PUSH2 0x04a0
000007b3: PUSH32 0xaeaff0ba5714de3101330cd09333f32afb2556d1f0ec0469ef94ffe1e27c4bca
000007d4: DUP2
000007d5: JUMP
000007d6: JUMPDEST
000007d7: PUSH2 0x04c1
000007da: PUSH2 0x07e4
000007dd: CALLDATASIZE
000007de: PUSH1 0x04
000007e0: PUSH2 0x4bad
000007e3: JUMP
000007e4: JUMPDEST
000007e5: PUSH2 0x19f2
000007e8: JUMP
000007e9: JUMPDEST
000007ea: PUSH1 0x03
000007ec: SLOAD
000007ed: PUSH2 0x0803
000007f0: SWAP1
000007f1: PUSH1 0x01
000007f3: PUSH1 0x80
000007f5: SHL
000007f6: SWAP1
000007f7: DIV
000007f8: PUSH1 0x01
000007fa: PUSH1 0x01
000007fc: PUSH1 0x40
000007fe: SHL
000007ff: SUB
00000800: AND
00000801: DUP2
00000802: JUMP
00000803: JUMPDEST
00000804: PUSH1 0x40
00000806: MLOAD
00000807: PUSH1 0x01
00000809: PUSH1 0x01
0000080b: PUSH1 0x40
0000080d: SHL
0000080e: SUB
0000080f: SWAP1
00000810: SWAP2
00000811: AND
00000812: DUP2
00000813: MSTORE
00000814: PUSH1 0x20
00000816: ADD
00000817: PUSH2 0x03ec
0000081a: JUMP
0000081b: JUMPDEST
0000081c: PUSH2 0x042b
0000081f: PUSH2 0x0829
00000822: CALLDATASIZE
00000823: PUSH1 0x04
00000825: PUSH2 0x501f
00000828: JUMP
00000829: JUMPDEST
0000082a: PUSH2 0x1aae
0000082d: JUMP
0000082e: JUMPDEST
0000082f: PUSH2 0x04c1
00000832: PUSH2 0x083c
00000835: CALLDATASIZE
00000836: PUSH1 0x04
00000838: PUSH2 0x5048
0000083b: JUMP
0000083c: JUMPDEST
0000083d: PUSH2 0x1b8e
00000840: JUMP
00000841: JUMPDEST
00000842: PUSH1 0x03
00000844: SLOAD
00000845: PUSH2 0x084e
00000848: SWAP1
00000849: PUSH1 0x80
0000084b: SHL
0000084c: DUP2
0000084d: JUMP
0000084e: JUMPDEST
0000084f: PUSH1 0x40
00000851: MLOAD
00000852: PUSH1 0x01
00000854: PUSH1 0x01
00000856: PUSH1 0x80
00000858: SHL
00000859: SUB
0000085a: NOT
0000085b: SWAP1
0000085c: SWAP2
0000085d: AND
0000085e: DUP2
0000085f: MSTORE
00000860: PUSH1 0x20
00000862: ADD
00000863: PUSH2 0x03ec
00000866: JUMP
00000867: JUMPDEST
00000868: PUSH2 0x042b
0000086b: PUSH2 0x0875
0000086e: CALLDATASIZE
0000086f: PUSH1 0x04
00000871: PUSH2 0x50d1
00000874: JUMP
00000875: JUMPDEST
00000876: PUSH2 0x1cb9
00000879: JUMP
0000087a: JUMPDEST
0000087b: PUSH2 0x04a0
0000087e: PUSH2 0x0888
00000881: CALLDATASIZE
00000882: PUSH1 0x04
00000884: PUSH2 0x4b4f
00000887: JUMP
00000888: JUMPDEST
00000889: PUSH2 0x1d9a
0000088c: JUMP
0000088d: JUMPDEST
0000088e: PUSH2 0x04a0
00000891: PUSH0
00000892: DUP1
00000893: MLOAD
00000894: PUSH1 0x20
00000896: PUSH2 0x5ade
00000899: DUP4
0000089a: CODECOPY
0000089b: DUP2
0000089c: MLOAD
0000089d: SWAP2
0000089e: MSTORE
0000089f: DUP2
000008a0: JUMP
000008a1: JUMPDEST
000008a2: PUSH2 0x042b
000008a5: PUSH2 0x08af
000008a8: CALLDATASIZE
000008a9: PUSH1 0x04
000008ab: PUSH2 0x4c37
000008ae: JUMP
000008af: JUMPDEST
000008b0: PUSH2 0x1dbe
000008b3: JUMP
000008b4: JUMPDEST
000008b5: PUSH2 0x04a0
000008b8: PUSH1 0x04
000008ba: SLOAD
000008bb: DUP2
000008bc: JUMP
000008bd: JUMPDEST
000008be: PUSH2 0x04a0
000008c1: PUSH0
000008c2: DUP1
000008c3: MLOAD
000008c4: PUSH1 0x20
000008c6: PUSH2 0x5b5e
000008c9: DUP4
000008ca: CODECOPY
000008cb: DUP2
000008cc: MLOAD
000008cd: SWAP2
000008ce: MSTORE
000008cf: DUP2
000008d0: JUMP
000008d1: JUMPDEST
000008d2: PUSH2 0x042b
000008d5: PUSH2 0x08df
000008d8: CALLDATASIZE
000008d9: PUSH1 0x04
000008db: PUSH2 0x50ea
000008de: JUMP
000008df: JUMPDEST
000008e0: PUSH2 0x1dda
000008e3: JUMP
000008e4: JUMPDEST
000008e5: PUSH2 0x04a0
000008e8: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
00000909: DUP2
0000090a: JUMP
0000090b: JUMPDEST
0000090c: PUSH2 0x04a0
0000090f: PUSH0
00000910: DUP1
00000911: MLOAD
00000912: PUSH1 0x20
00000914: PUSH2 0x5abe
00000917: DUP4
00000918: CODECOPY
00000919: DUP2
0000091a: MLOAD
0000091b: SWAP2
0000091c: MSTORE
0000091d: DUP2
0000091e: JUMP
0000091f: JUMPDEST
00000920: PUSH2 0x04a0
00000923: PUSH2 0x1ee4
00000926: JUMP
00000927: JUMPDEST
00000928: PUSH2 0x04a0
0000092b: PUSH0
0000092c: DUP1
0000092d: MLOAD
0000092e: PUSH1 0x20
00000930: PUSH2 0x5b3e
00000933: DUP4
00000934: CODECOPY
00000935: DUP2
00000936: MLOAD
00000937: SWAP2
00000938: MSTORE
00000939: DUP2
0000093a: JUMP
0000093b: JUMPDEST
0000093c: PUSH1 0x02
0000093e: SLOAD
0000093f: PUSH2 0x0454
00000942: SWAP1
00000943: PUSH1 0x01
00000945: PUSH1 0x01
00000947: PUSH1 0xa0
00000949: SHL
0000094a: SUB
0000094b: AND
0000094c: DUP2
0000094d: JUMP
0000094e: JUMPDEST
0000094f: PUSH2 0x042b
00000952: PUSH2 0x095c
00000955: CALLDATASIZE
00000956: PUSH1 0x04
00000958: PUSH2 0x51a5
0000095b: JUMP
0000095c: JUMPDEST
0000095d: PUSH2 0x1eed
00000960: JUMP
00000961: JUMPDEST
00000962: PUSH2 0x042b
00000965: PUSH2 0x096f
00000968: CALLDATASIZE
00000969: PUSH1 0x04
0000096b: PUSH2 0x5220
0000096e: JUMP
0000096f: JUMPDEST
00000970: PUSH2 0x2318
00000973: JUMP
00000974: JUMPDEST
00000975: PUSH0
00000976: PUSH1 0x01
00000978: PUSH1 0x01
0000097a: PUSH1 0xe0
0000097c: SHL
0000097d: SUB
0000097e: NOT
0000097f: DUP3
00000980: AND
00000981: PUSH4 0x5a05180f
00000986: PUSH1 0xe0
00000988: SHL
00000989: EQ
0000098a: DUP1
0000098b: PUSH2 0x0998
0000098e: JUMPI
0000098f: POP
00000990: PUSH2 0x0998
00000993: DUP3
00000994: PUSH2 0x236d
00000997: JUMP
00000998: JUMPDEST
00000999: SWAP3
0000099a: SWAP2
0000099b: POP
0000099c: POP
0000099d: JUMP
0000099e: JUMPDEST
0000099f: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
000009c0: DUP1
000009c1: SLOAD
000009c2: PUSH1 0x01
000009c4: PUSH1 0x40
000009c6: SHL
000009c7: DUP2
000009c8: DIV
000009c9: PUSH1 0xff
000009cb: AND
000009cc: ISZERO
000009cd: SWAP1
000009ce: PUSH1 0x01
000009d0: PUSH1 0x01
000009d2: PUSH1 0x40
000009d4: SHL
000009d5: SUB
000009d6: AND
000009d7: PUSH0
000009d8: DUP2
000009d9: ISZERO
000009da: DUP1
000009db: ISZERO
000009dc: PUSH2 0x09e2
000009df: JUMPI
000009e0: POP
000009e1: DUP3
000009e2: JUMPDEST
000009e3: SWAP1
000009e4: POP
000009e5: PUSH0
000009e6: DUP3
000009e7: PUSH1 0x01
000009e9: PUSH1 0x01
000009eb: PUSH1 0x40
000009ed: SHL
000009ee: SUB
000009ef: AND
000009f0: PUSH1 0x01
000009f2: EQ
000009f3: DUP1
000009f4: ISZERO
000009f5: PUSH2 0x09fd
000009f8: JUMPI
000009f9: POP
000009fa: ADDRESS
000009fb: EXTCODESIZE
000009fc: ISZERO
000009fd: JUMPDEST
000009fe: SWAP1
000009ff: POP
00000a00: DUP2
00000a01: ISZERO
00000a02: DUP1
00000a03: ISZERO
00000a04: PUSH2 0x0a0b
00000a07: JUMPI
00000a08: POP
00000a09: DUP1
00000a0a: ISZERO
00000a0b: JUMPDEST
00000a0c: ISZERO
00000a0d: PUSH2 0x0a29
00000a10: JUMPI
00000a11: PUSH1 0x40
00000a13: MLOAD
00000a14: PUSH4 0xf92ee8a9
00000a19: PUSH1 0xe0
00000a1b: SHL
00000a1c: DUP2
00000a1d: MSTORE
00000a1e: PUSH1 0x04
00000a20: ADD
00000a21: PUSH1 0x40
00000a23: MLOAD
00000a24: DUP1
00000a25: SWAP2
00000a26: SUB
00000a27: SWAP1
00000a28: REVERT
00000a29: JUMPDEST
00000a2a: DUP5
00000a2b: SLOAD
00000a2c: PUSH8 0xffffffffffffffff
00000a35: NOT
00000a36: AND
00000a37: PUSH1 0x01
00000a39: OR
00000a3a: DUP6
00000a3b: SSTORE
00000a3c: DUP4
00000a3d: ISZERO
00000a3e: PUSH2 0x0a53
00000a41: JUMPI
00000a42: DUP5
00000a43: SLOAD
00000a44: PUSH1 0xff
00000a46: PUSH1 0x40
00000a48: SHL
00000a49: NOT
00000a4a: AND
00000a4b: PUSH1 0x01
00000a4d: PUSH1 0x40
00000a4f: SHL
00000a50: OR
00000a51: DUP6
00000a52: SSTORE
00000a53: JUMPDEST
00000a54: PUSH2 0x0a5b
00000a57: PUSH2 0x23a1
00000a5a: JUMP
00000a5b: JUMPDEST
00000a5c: PUSH2 0x0aa1
00000a5f: PUSH1 0x40
00000a61: MLOAD
00000a62: DUP1
00000a63: PUSH1 0x40
00000a65: ADD
00000a66: PUSH1 0x40
00000a68: MSTORE
00000a69: DUP1
00000a6a: PUSH1 0x0b
00000a6c: DUP2
00000a6d: MSTORE
00000a6e: PUSH1 0x20
00000a70: ADD
00000a71: PUSH11 0x2234b9ba3934b13aba37b9
00000a7d: PUSH1 0xa9
00000a7f: SHL
00000a80: DUP2
00000a81: MSTORE
00000a82: POP
00000a83: PUSH1 0x40
00000a85: MLOAD
00000a86: DUP1
00000a87: PUSH1 0x40
00000a89: ADD
00000a8a: PUSH1 0x40
00000a8c: MSTORE
00000a8d: DUP1
00000a8e: PUSH1 0x01
00000a90: DUP2
00000a91: MSTORE
00000a92: PUSH1 0x20
00000a94: ADD
00000a95: PUSH1 0x31
00000a97: PUSH1 0xf8
00000a99: SHL
00000a9a: DUP2
00000a9b: MSTORE
00000a9c: POP
00000a9d: PUSH2 0x23a9
00000aa0: JUMP
00000aa1: JUMPDEST
00000aa2: PUSH2 0x0ad8
00000aa5: PUSH0
00000aa6: DUP1
00000aa7: MLOAD
00000aa8: PUSH1 0x20
00000aaa: PUSH2 0x5b3e
00000aad: DUP4
00000aae: CODECOPY
00000aaf: DUP2
00000ab0: MLOAD
00000ab1: SWAP2
00000ab2: MSTORE
00000ab3: PUSH32 0xaeaff0ba5714de3101330cd09333f32afb2556d1f0ec0469ef94ffe1e27c4bca
00000ad4: PUSH2 0x23bb
00000ad7: JUMP
00000ad8: JUMPDEST
00000ad9: PUSH2 0x0afc
00000adc: PUSH0
00000add: DUP1
00000ade: MLOAD
00000adf: PUSH1 0x20
00000ae1: PUSH2 0x5afe
00000ae4: DUP4
00000ae5: CODECOPY
00000ae6: DUP2
00000ae7: MLOAD
00000ae8: SWAP2
00000ae9: MSTORE
00000aea: PUSH0
00000aeb: DUP1
00000aec: MLOAD
00000aed: PUSH1 0x20
00000aef: PUSH2 0x5b3e
00000af2: DUP4
00000af3: CODECOPY
00000af4: DUP2
00000af5: MLOAD
00000af6: SWAP2
00000af7: MSTORE
00000af8: PUSH2 0x23bb
00000afb: JUMP
00000afc: JUMPDEST
00000afd: PUSH2 0x0b20
00000b00: PUSH0
00000b01: DUP1
00000b02: MLOAD
00000b03: PUSH1 0x20
00000b05: PUSH2 0x5ade
00000b08: DUP4
00000b09: CODECOPY
00000b0a: DUP2
00000b0b: MLOAD
00000b0c: SWAP2
00000b0d: MSTORE
00000b0e: PUSH0
00000b0f: DUP1
00000b10: MLOAD
00000b11: PUSH1 0x20
00000b13: PUSH2 0x5b3e
00000b16: DUP4
00000b17: CODECOPY
00000b18: DUP2
00000b19: MLOAD
00000b1a: SWAP2
00000b1b: MSTORE
00000b1c: PUSH2 0x23bb
00000b1f: JUMP
00000b20: JUMPDEST
00000b21: PUSH2 0x0b30
00000b24: PUSH0
00000b25: DUP1
00000b26: SHL
00000b27: DUP8
00000b28: PUSH1 0xc0
00000b2a: ADD
00000b2b: MLOAD
00000b2c: PUSH2 0x241b
00000b2f: JUMP
00000b30: JUMPDEST
00000b31: POP
00000b32: PUSH2 0x0b4c
00000b35: PUSH0
00000b36: DUP1
00000b37: MLOAD
00000b38: PUSH1 0x20
00000b3a: PUSH2 0x5abe
00000b3d: DUP4
00000b3e: CODECOPY
00000b3f: DUP2
00000b40: MLOAD
00000b41: SWAP2
00000b42: MSTORE
00000b43: DUP8
00000b44: PUSH1 0xe0
00000b46: ADD
00000b47: MLOAD
00000b48: PUSH2 0x241b
00000b4b: JUMP
00000b4c: JUMPDEST
00000b4d: POP
00000b4e: PUSH2 0x0b7c
00000b51: PUSH32 0xaeaff0ba5714de3101330cd09333f32afb2556d1f0ec0469ef94ffe1e27c4bca
00000b72: DUP8
00000b73: PUSH2 0x0100
00000b76: ADD
00000b77: MLOAD
00000b78: PUSH2 0x241b
00000b7b: JUMP
00000b7c: JUMPDEST
00000b7d: POP
00000b7e: PUSH2 0x0b99
00000b81: PUSH0
00000b82: DUP1
00000b83: MLOAD
00000b84: PUSH1 0x20
00000b86: PUSH2 0x5b3e
00000b89: DUP4
00000b8a: CODECOPY
00000b8b: DUP2
00000b8c: MLOAD
00000b8d: SWAP2
00000b8e: MSTORE
00000b8f: DUP8
00000b90: PUSH2 0x0120
00000b93: ADD
00000b94: MLOAD
00000b95: PUSH2 0x241b
00000b98: JUMP
00000b99: JUMPDEST
00000b9a: POP
00000b9b: PUSH2 0x0bb6
00000b9e: PUSH0
00000b9f: DUP1
00000ba0: MLOAD
00000ba1: PUSH1 0x20
00000ba3: PUSH2 0x5afe
00000ba6: DUP4
00000ba7: CODECOPY
00000ba8: DUP2
00000ba9: MLOAD
00000baa: SWAP2
00000bab: MSTORE
00000bac: DUP8
00000bad: PUSH2 0x0140
00000bb0: ADD
00000bb1: MLOAD
00000bb2: PUSH2 0x241b
00000bb5: JUMP
00000bb6: JUMPDEST
00000bb7: POP
00000bb8: PUSH2 0x0bd3
00000bbb: PUSH0
00000bbc: DUP1
00000bbd: MLOAD
00000bbe: PUSH1 0x20
00000bc0: PUSH2 0x5ade
00000bc3: DUP4
00000bc4: CODECOPY
00000bc5: DUP2
00000bc6: MLOAD
00000bc7: SWAP2
00000bc8: MSTORE
00000bc9: DUP8
00000bca: PUSH2 0x0160
00000bcd: ADD
00000bce: MLOAD
00000bcf: PUSH2 0x241b
00000bd2: JUMP
00000bd3: JUMPDEST
00000bd4: POP
00000bd5: PUSH2 0x0c03
00000bd8: PUSH32 0x797343f8d6a29aafeb3aaf0910a8973e0081c60c2f6c1f775cd9f76ea348fc1e
00000bf9: DUP8
00000bfa: PUSH2 0x0160
00000bfd: ADD
00000bfe: MLOAD
00000bff: PUSH2 0x241b
00000c02: JUMP
00000c03: JUMPDEST
00000c04: POP
00000c05: PUSH2 0x0c33
00000c08: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
00000c29: DUP8
00000c2a: PUSH2 0x0160
00000c2d: ADD
00000c2e: MLOAD
00000c2f: PUSH2 0x241b
00000c32: JUMP
00000c33: JUMPDEST
00000c34: POP
00000c35: PUSH2 0x0c41
00000c38: DUP7
00000c39: PUSH1 0x40
00000c3b: ADD
00000c3c: MLOAD
00000c3d: PUSH2 0x245d
00000c40: JUMP
00000c41: JUMPDEST
00000c42: PUSH1 0x40
00000c44: DUP7
00000c45: DUP2
00000c46: ADD
00000c47: MLOAD
00000c48: DUP1
00000c49: MLOAD
00000c4a: PUSH0
00000c4b: DUP1
00000c4c: SLOAD
00000c4d: PUSH1 0x20
00000c4f: DUP1
00000c50: DUP6
00000c51: ADD
00000c52: MLOAD
00000c53: SWAP5
00000c54: SWAP1
00000c55: SWAP6
00000c56: ADD
00000c57: MLOAD
00000c58: PUSH1 0x01
00000c5a: PUSH1 0x01
00000c5c: PUSH1 0xa0
00000c5e: SHL
00000c5f: SUB
00000c60: SWAP4
00000c61: DUP5
00000c62: AND
00000c63: PUSH1 0x01
00000c65: PUSH1 0x01
00000c67: PUSH1 0xd0
00000c69: SHL
00000c6a: SUB
00000c6b: NOT
00000c6c: SWAP1
00000c6d: SWAP3
00000c6e: AND
00000c6f: SWAP2
00000c70: SWAP1
00000c71: SWAP2
00000c72: OR
00000c73: PUSH1 0x01
00000c75: PUSH1 0xa0
00000c77: SHL
00000c78: PUSH1 0xd0
00000c7a: SWAP6
00000c7b: DUP7
00000c7c: SHR
00000c7d: MUL
00000c7e: OR
00000c7f: PUSH1 0x01
00000c81: PUSH1 0x01
00000c83: PUSH1 0xd0
00000c85: SHL
00000c86: SUB
00000c87: AND
00000c88: PUSH1 0x01
00000c8a: PUSH1 0xd0
00000c8c: SHL
00000c8d: SWAP2
00000c8e: SWAP1
00000c8f: SWAP5
00000c90: SHR
00000c91: MUL
00000c92: SWAP3
00000c93: SWAP1
00000c94: SWAP3
00000c95: OR
00000c96: SWAP1
00000c97: SWAP2
00000c98: SSTORE
00000c99: PUSH1 0x60
00000c9b: DUP9
00000c9c: ADD
00000c9d: MLOAD
00000c9e: PUSH1 0x01
00000ca0: DUP1
00000ca1: SLOAD
00000ca2: PUSH1 0x01
00000ca4: PUSH1 0x01
00000ca6: PUSH1 0xa0
00000ca8: SHL
00000ca9: SUB
00000caa: NOT
00000cab: SWAP1
00000cac: DUP2
00000cad: AND
00000cae: SWAP3
00000caf: DUP5
00000cb0: AND
00000cb1: SWAP3
00000cb2: SWAP1
00000cb3: SWAP3
00000cb4: OR
00000cb5: SWAP1
00000cb6: SSTORE
00000cb7: DUP9
00000cb8: MLOAD
00000cb9: PUSH1 0x02
00000cbb: DUP1
00000cbc: SLOAD
00000cbd: SWAP1
00000cbe: SWAP3
00000cbf: AND
00000cc0: SWAP3
00000cc1: AND
00000cc2: SWAP2
00000cc3: SWAP1
00000cc4: SWAP2
00000cc5: OR
00000cc6: SWAP1
00000cc7: SSTORE
00000cc8: DUP7
00000cc9: ADD
00000cca: MLOAD
00000ccb: PUSH1 0x03
00000ccd: DUP1
00000cce: SLOAD
00000ccf: PUSH1 0x01
00000cd1: PUSH1 0x01
00000cd3: PUSH1 0x80
00000cd5: SHL
00000cd6: SUB
00000cd7: NOT
00000cd8: AND
00000cd9: PUSH1 0x80
00000cdb: SWAP3
00000cdc: DUP4
00000cdd: SHR
00000cde: OR
00000cdf: SWAP1
00000ce0: SSTORE
00000ce1: PUSH2 0x01a0
00000ce4: DUP8
00000ce5: ADD
00000ce6: MLOAD
00000ce7: PUSH1 0x07
00000ce9: DUP1
00000cea: SLOAD
00000ceb: PUSH2 0xffff
00000cee: NOT
00000cef: AND
00000cf0: PUSH2 0xffff
00000cf3: SWAP1
00000cf4: SWAP3
00000cf5: AND
00000cf6: SWAP2
00000cf7: SWAP1
00000cf8: SWAP2
00000cf9: OR
00000cfa: SWAP1
00000cfb: SSTORE
00000cfc: DUP7
00000cfd: ADD
00000cfe: MLOAD
00000cff: PUSH2 0x0180
00000d02: DUP8
00000d03: ADD
00000d04: MLOAD
00000d05: PUSH2 0x0d0e
00000d08: SWAP2
00000d09: SWAP1
00000d0a: PUSH2 0x25d4
00000d0d: JUMP
00000d0e: JUMPDEST
00000d0f: PUSH2 0x0d1b
00000d12: DUP7
00000d13: PUSH1 0xa0
00000d15: ADD
00000d16: MLOAD
00000d17: PUSH2 0x288e
00000d1a: JUMP
00000d1b: JUMPDEST
00000d1c: PUSH1 0x02
00000d1e: DUP1
00000d1f: SLOAD
00000d20: PUSH1 0xff
00000d22: PUSH1 0xa0
00000d24: SHL
00000d25: NOT
00000d26: AND
00000d27: PUSH1 0x01
00000d29: PUSH1 0xa0
00000d2b: SHL
00000d2c: OR
00000d2d: SWAP1
00000d2e: SSTORE
00000d2f: DUP4
00000d30: ISZERO
00000d31: PUSH2 0x0d74
00000d34: JUMPI
00000d35: DUP5
00000d36: SLOAD
00000d37: PUSH1 0xff
00000d39: PUSH1 0x40
00000d3b: SHL
00000d3c: NOT
00000d3d: AND
00000d3e: DUP6
00000d3f: SSTORE
00000d40: PUSH1 0x40
00000d42: MLOAD
00000d43: PUSH1 0x01
00000d45: DUP2
00000d46: MSTORE
00000d47: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
00000d68: SWAP1
00000d69: PUSH1 0x20
00000d6b: ADD
00000d6c: PUSH1 0x40
00000d6e: MLOAD
00000d6f: DUP1
00000d70: SWAP2
00000d71: SUB
00000d72: SWAP1
00000d73: LOG1
00000d74: JUMPDEST
00000d75: POP
00000d76: POP
00000d77: POP
00000d78: POP
00000d79: POP
00000d7a: POP
00000d7b: JUMP
00000d7c: JUMPDEST
00000d7d: PUSH0
00000d7e: SWAP1
00000d7f: DUP2
00000d80: MSTORE
00000d81: PUSH0
00000d82: DUP1
00000d83: MLOAD
00000d84: PUSH1 0x20
00000d86: PUSH2 0x5b1e
00000d89: DUP4
00000d8a: CODECOPY
00000d8b: DUP2
00000d8c: MLOAD
00000d8d: SWAP2
00000d8e: MSTORE
00000d8f: PUSH1 0x20
00000d91: MSTORE
00000d92: PUSH1 0x40
00000d94: SWAP1
00000d95: KECCAK256
00000d96: PUSH1 0x01
00000d98: ADD
00000d99: SLOAD
00000d9a: SWAP1
00000d9b: JUMP
00000d9c: JUMPDEST
00000d9d: PUSH1 0x60
00000d9f: PUSH0
00000da0: DUP3
00000da1: PUSH1 0x01
00000da3: PUSH1 0x01
00000da5: PUSH1 0x40
00000da7: SHL
00000da8: SUB
00000da9: DUP2
00000daa: GT
00000dab: ISZERO
00000dac: PUSH2 0x0db7
00000daf: JUMPI
00000db0: PUSH2 0x0db7
00000db3: PUSH2 0x46ae
00000db6: JUMP
00000db7: JUMPDEST
00000db8: PUSH1 0x40
00000dba: MLOAD
00000dbb: SWAP1
00000dbc: DUP1
00000dbd: DUP3
00000dbe: MSTORE
00000dbf: DUP1
00000dc0: PUSH1 0x20
00000dc2: MUL
00000dc3: PUSH1 0x20
00000dc5: ADD
00000dc6: DUP3
00000dc7: ADD
00000dc8: PUSH1 0x40
00000dca: MSTORE
00000dcb: DUP1
00000dcc: ISZERO
00000dcd: PUSH2 0x0de0
00000dd0: JUMPI
00000dd1: DUP2
00000dd2: PUSH1 0x20
00000dd4: ADD
00000dd5: PUSH1 0x20
00000dd7: DUP3
00000dd8: MUL
00000dd9: DUP1
00000dda: CALLDATASIZE
00000ddb: DUP4
00000ddc: CALLDATACOPY
00000ddd: ADD
00000dde: SWAP1
00000ddf: POP
00000de0: JUMPDEST
00000de1: POP
00000de2: SWAP1
00000de3: POP
00000de4: PUSH0
00000de5: JUMPDEST
00000de6: DUP4
00000de7: DUP2
00000de8: LT
00000de9: ISZERO
00000dea: PUSH2 0x0e5e
00000ded: JUMPI
00000dee: PUSH1 0x09
00000df0: PUSH0
00000df1: DUP7
00000df2: DUP7
00000df3: DUP5
00000df4: DUP2
00000df5: DUP2
00000df6: LT
00000df7: PUSH2 0x0e02
00000dfa: JUMPI
00000dfb: PUSH2 0x0e02
00000dfe: PUSH2 0x52f4
00000e01: JUMP
00000e02: JUMPDEST
00000e03: SWAP1
00000e04: POP
00000e05: PUSH1 0x20
00000e07: MUL
00000e08: ADD
00000e09: PUSH1 0x20
00000e0b: DUP2
00000e0c: ADD
00000e0d: SWAP1
00000e0e: PUSH2 0x0e17
00000e11: SWAP2
00000e12: SWAP1
00000e13: PUSH2 0x5308
00000e16: JUMP
00000e17: JUMPDEST
00000e18: PUSH1 0x01
00000e1a: PUSH1 0x01
00000e1c: PUSH1 0x80
00000e1e: SHL
00000e1f: SUB
00000e20: NOT
00000e21: AND
00000e22: PUSH1 0x01
00000e24: PUSH1 0x01
00000e26: PUSH1 0x80
00000e28: SHL
00000e29: SUB
00000e2a: NOT
00000e2b: AND
00000e2c: DUP2
00000e2d: MSTORE
00000e2e: PUSH1 0x20
00000e30: ADD
00000e31: SWAP1
00000e32: DUP2
00000e33: MSTORE
00000e34: PUSH1 0x20
00000e36: ADD
00000e37: PUSH0
00000e38: KECCAK256
00000e39: SLOAD
00000e3a: DUP3
00000e3b: DUP3
00000e3c: DUP2
00000e3d: MLOAD
00000e3e: DUP2
00000e3f: LT
00000e40: PUSH2 0x0e4b
00000e43: JUMPI
00000e44: PUSH2 0x0e4b
00000e47: PUSH2 0x52f4
00000e4a: JUMP
00000e4b: JUMPDEST
00000e4c: PUSH1 0x20
00000e4e: SWAP1
00000e4f: DUP2
00000e50: MUL
00000e51: SWAP2
00000e52: SWAP1
00000e53: SWAP2
00000e54: ADD
00000e55: ADD
00000e56: MSTORE
00000e57: PUSH1 0x01
00000e59: ADD
00000e5a: PUSH2 0x0de5
00000e5d: JUMP
00000e5e: JUMPDEST
00000e5f: POP
00000e60: SWAP4
00000e61: SWAP3
00000e62: POP
00000e63: POP
00000e64: POP
00000e65: JUMP
00000e66: JUMPDEST
00000e67: PUSH2 0x0e6f
00000e6a: DUP3
00000e6b: PUSH2 0x0d7c
00000e6e: JUMP
00000e6f: JUMPDEST
00000e70: PUSH2 0x0e78
00000e73: DUP2
00000e74: PUSH2 0x2b82
00000e77: JUMP
00000e78: JUMPDEST
00000e79: PUSH2 0x0e82
00000e7c: DUP4
00000e7d: DUP4
00000e7e: PUSH2 0x241b
00000e81: JUMP
00000e82: JUMPDEST
00000e83: POP
00000e84: POP
00000e85: POP
00000e86: POP
00000e87: JUMP
00000e88: JUMPDEST
00000e89: PUSH0
00000e8a: DUP1
00000e8b: MLOAD
00000e8c: PUSH1 0x20
00000e8e: PUSH2 0x5abe
00000e91: DUP4
00000e92: CODECOPY
00000e93: DUP2
00000e94: MLOAD
00000e95: SWAP2
00000e96: MSTORE
00000e97: PUSH2 0x0e9f
00000e9a: DUP2
00000e9b: PUSH2 0x2b82
00000e9e: JUMP
00000e9f: JUMPDEST
00000ea0: PUSH2 0x0e82
00000ea3: DUP5
00000ea4: DUP5
00000ea5: DUP1
00000ea6: DUP1
00000ea7: PUSH1 0x20
00000ea9: MUL
00000eaa: PUSH1 0x20
00000eac: ADD
00000ead: PUSH1 0x40
00000eaf: MLOAD
00000eb0: SWAP1
00000eb1: DUP2
00000eb2: ADD
00000eb3: PUSH1 0x40
00000eb5: MSTORE
00000eb6: DUP1
00000eb7: SWAP4
00000eb8: SWAP3
00000eb9: SWAP2
00000eba: SWAP1
00000ebb: DUP2
00000ebc: DUP2
00000ebd: MSTORE
00000ebe: PUSH1 0x20
00000ec0: ADD
00000ec1: PUSH0
00000ec2: SWAP1
00000ec3: JUMPDEST
00000ec4: DUP3
00000ec5: DUP3
00000ec6: LT
00000ec7: ISZERO
00000ec8: PUSH2 0x0eef
00000ecb: JUMPI
00000ecc: PUSH2 0x0ee0
00000ecf: PUSH1 0xa0
00000ed1: DUP4
00000ed2: MUL
00000ed3: DUP7
00000ed4: ADD
00000ed5: CALLDATASIZE
00000ed6: DUP2
00000ed7: SWAP1
00000ed8: SUB
00000ed9: DUP2
00000eda: ADD
00000edb: SWAP1
00000edc: PUSH2 0x5321
00000edf: JUMP
00000ee0: JUMPDEST
00000ee1: DUP2
00000ee2: MSTORE
00000ee3: PUSH1 0x20
00000ee5: ADD
00000ee6: SWAP1
00000ee7: PUSH1 0x01
00000ee9: ADD
00000eea: SWAP1
00000eeb: PUSH2 0x0ec3
00000eee: JUMP
00000eef: JUMPDEST
00000ef0: POP
00000ef1: POP
00000ef2: POP
00000ef3: POP
00000ef4: POP
00000ef5: DUP4
00000ef6: PUSH2 0x25d4
00000ef9: JUMP
00000efa: JUMPDEST
00000efb: PUSH0
00000efc: DUP1
00000efd: MLOAD
00000efe: PUSH1 0x20
00000f00: PUSH2 0x5b3e
00000f03: DUP4
00000f04: CODECOPY
00000f05: DUP2
00000f06: MLOAD
00000f07: SWAP2
00000f08: MSTORE
00000f09: PUSH2 0x0f11
00000f0c: DUP2
00000f0d: PUSH2 0x2b82
00000f10: JUMP
00000f11: JUMPDEST
00000f12: PUSH2 0x0f1a
00000f15: DUP3
00000f16: PUSH2 0x2b8c
00000f19: JUMP
00000f1a: JUMPDEST
00000f1b: POP
00000f1c: POP
00000f1d: JUMP
00000f1e: JUMPDEST
00000f1f: PUSH1 0x60
00000f21: PUSH0
00000f22: DUP6
00000f23: PUSH1 0x01
00000f25: PUSH1 0x01
00000f27: PUSH1 0x40
00000f29: SHL
00000f2a: SUB
00000f2b: DUP2
00000f2c: GT
00000f2d: ISZERO
00000f2e: PUSH2 0x0f39
00000f31: JUMPI
00000f32: PUSH2 0x0f39
00000f35: PUSH2 0x46ae
00000f38: JUMP
00000f39: JUMPDEST
00000f3a: PUSH1 0x40
00000f3c: MLOAD
00000f3d: SWAP1
00000f3e: DUP1
00000f3f: DUP3
00000f40: MSTORE
00000f41: DUP1
00000f42: PUSH1 0x20
00000f44: MUL
00000f45: PUSH1 0x20
00000f47: ADD
00000f48: DUP3
00000f49: ADD
00000f4a: PUSH1 0x40
00000f4c: MSTORE
00000f4d: DUP1
00000f4e: ISZERO
00000f4f: PUSH2 0x0f62
00000f52: JUMPI
00000f53: DUP2
00000f54: PUSH1 0x20
00000f56: ADD
00000f57: PUSH1 0x20
00000f59: DUP3
00000f5a: MUL
00000f5b: DUP1
00000f5c: CALLDATASIZE
00000f5d: DUP4
00000f5e: CALLDATACOPY
00000f5f: ADD
00000f60: SWAP1
00000f61: POP
00000f62: JUMPDEST
00000f63: POP
00000f64: SWAP1
00000f65: POP
00000f66: PUSH0
00000f67: JUMPDEST
00000f68: DUP7
00000f69: DUP2
00000f6a: LT
00000f6b: ISZERO
00000f6c: PUSH2 0x0feb
00000f6f: JUMPI
00000f70: PUSH2 0x0fc6
00000f73: DUP9
00000f74: DUP9
00000f75: DUP4
00000f76: DUP2
00000f77: DUP2
00000f78: LT
00000f79: PUSH2 0x0f84
00000f7c: JUMPI
00000f7d: PUSH2 0x0f84
00000f80: PUSH2 0x52f4
00000f83: JUMP
00000f84: JUMPDEST
00000f85: SWAP1
00000f86: POP
00000f87: PUSH1 0x20
00000f89: MUL
00000f8a: ADD
00000f8b: PUSH1 0x20
00000f8d: DUP2
00000f8e: ADD
00000f8f: SWAP1
00000f90: PUSH2 0x0f99
00000f93: SWAP2
00000f94: SWAP1
00000f95: PUSH2 0x5308
00000f98: JUMP
00000f99: JUMPDEST
00000f9a: DUP8
00000f9b: DUP8
00000f9c: DUP5
00000f9d: DUP2
00000f9e: DUP2
00000f9f: LT
00000fa0: PUSH2 0x0fab
00000fa3: JUMPI
00000fa4: PUSH2 0x0fab
00000fa7: PUSH2 0x52f4
00000faa: JUMP
00000fab: JUMPDEST
00000fac: SWAP1
00000fad: POP
00000fae: PUSH1 0x20
00000fb0: MUL
00000fb1: ADD
00000fb2: PUSH1 0x20
00000fb4: DUP2
00000fb5: ADD
00000fb6: SWAP1
00000fb7: PUSH2 0x0fc0
00000fba: SWAP2
00000fbb: SWAP1
00000fbc: PUSH2 0x533b
00000fbf: JUMP
00000fc0: JUMPDEST
00000fc1: DUP7
00000fc2: PUSH2 0x2c0c
00000fc5: JUMP
00000fc6: JUMPDEST
00000fc7: DUP3
00000fc8: DUP3
00000fc9: DUP2
00000fca: MLOAD
00000fcb: DUP2
00000fcc: LT
00000fcd: PUSH2 0x0fd8
00000fd0: JUMPI
00000fd1: PUSH2 0x0fd8
00000fd4: PUSH2 0x52f4
00000fd7: JUMP
00000fd8: JUMPDEST
00000fd9: PUSH1 0x20
00000fdb: SWAP1
00000fdc: DUP2
00000fdd: MUL
00000fde: SWAP2
00000fdf: SWAP1
00000fe0: SWAP2
00000fe1: ADD
00000fe2: ADD
00000fe3: MSTORE
00000fe4: PUSH1 0x01
00000fe6: ADD
00000fe7: PUSH2 0x0f67
00000fea: JUMP
00000feb: JUMPDEST
00000fec: POP
00000fed: SWAP1
00000fee: POP
00000fef: JUMPDEST
00000ff0: SWAP6
00000ff1: SWAP5
00000ff2: POP
00000ff3: POP
00000ff4: POP
00000ff5: POP
00000ff6: POP
00000ff7: JUMP
00000ff8: JUMPDEST
00000ff9: PUSH1 0x01
00000ffb: PUSH1 0x01
00000ffd: PUSH1 0xa0
00000fff: SHL
00001000: SUB
00001001: DUP2
00001002: AND
00001003: CALLER
00001004: EQ
00001005: PUSH2 0x1021
00001008: JUMPI
00001009: PUSH1 0x40
0000100b: MLOAD
0000100c: PUSH4 0x334bd919
00001011: PUSH1 0xe1
00001013: SHL
00001014: DUP2
00001015: MSTORE
00001016: PUSH1 0x04
00001018: ADD
00001019: PUSH1 0x40
0000101b: MLOAD
0000101c: DUP1
0000101d: SWAP2
0000101e: SUB
0000101f: SWAP1
00001020: REVERT
00001021: JUMPDEST
00001022: PUSH2 0x102b
00001025: DUP3
00001026: DUP3
00001027: PUSH2 0x2d6c
0000102a: JUMP
0000102b: JUMPDEST
0000102c: POP
0000102d: POP
0000102e: POP
0000102f: JUMP
00001030: JUMPDEST
00001031: PUSH1 0x40
00001033: DUP1
00001034: MLOAD
00001035: PUSH1 0x60
00001037: DUP2
00001038: ADD
00001039: DUP3
0000103a: MSTORE
0000103b: PUSH0
0000103c: SLOAD
0000103d: PUSH1 0x01
0000103f: PUSH1 0x01
00001041: PUSH1 0xa0
00001043: SHL
00001044: SUB
00001045: DUP2
00001046: AND
00001047: DUP3
00001048: MSTORE
00001049: PUSH1 0x01
0000104b: PUSH1 0x01
0000104d: PUSH1 0xd0
0000104f: SHL
00001050: SUB
00001051: NOT
00001052: PUSH1 0x01
00001054: PUSH1 0xa0
00001056: SHL
00001057: DUP3
00001058: DIV
00001059: PUSH1 0xd0
0000105b: SWAP1
0000105c: DUP2
0000105d: SHL
0000105e: DUP3
0000105f: AND
00001060: PUSH1 0x20
00001062: DUP6
00001063: ADD
00001064: MSTORE
00001065: PUSH1 0x01
00001067: PUSH1 0xd0
00001069: SHL
0000106a: SWAP1
0000106b: SWAP3
0000106c: DIV
0000106d: SWAP1
0000106e: SWAP2
0000106f: SHL
00001070: AND
00001071: SWAP2
00001072: DUP2
00001073: ADD
00001074: SWAP2
00001075: SWAP1
00001076: SWAP2
00001077: MSTORE
00001078: PUSH2 0x1080
0000107b: SWAP1
0000107c: PUSH2 0x2da5
0000107f: JUMP
00001080: JUMPDEST
00001081: JUMP
00001082: JUMPDEST
00001083: PUSH0
00001084: DUP1
00001085: MLOAD
00001086: PUSH1 0x20
00001088: PUSH2 0x5abe
0000108b: DUP4
0000108c: CODECOPY
0000108d: DUP2
0000108e: MLOAD
0000108f: SWAP2
00001090: MSTORE
00001091: PUSH2 0x1099
00001094: DUP2
00001095: PUSH2 0x2b82
00001098: JUMP
00001099: JUMPDEST
0000109a: PUSH2 0x102b
0000109d: DUP4
0000109e: DUP4
0000109f: DUP1
000010a0: DUP1
000010a1: PUSH1 0x20
000010a3: MUL
000010a4: PUSH1 0x20
000010a6: ADD
000010a7: PUSH1 0x40
000010a9: MLOAD
000010aa: SWAP1
000010ab: DUP2
000010ac: ADD
000010ad: PUSH1 0x40
000010af: MSTORE
000010b0: DUP1
000010b1: SWAP4
000010b2: SWAP3
000010b3: SWAP2
000010b4: SWAP1
000010b5: DUP2
000010b6: DUP2
000010b7: MSTORE
000010b8: PUSH1 0x20
000010ba: ADD
000010bb: PUSH0
000010bc: SWAP1
000010bd: JUMPDEST
000010be: DUP3
000010bf: DUP3
000010c0: LT
000010c1: ISZERO
000010c2: PUSH2 0x10e9
000010c5: JUMPI
000010c6: PUSH2 0x10da
000010c9: PUSH1 0x60
000010cb: DUP4
000010cc: MUL
000010cd: DUP7
000010ce: ADD
000010cf: CALLDATASIZE
000010d0: DUP2
000010d1: SWAP1
000010d2: SUB
000010d3: DUP2
000010d4: ADD
000010d5: SWAP1
000010d6: PUSH2 0x5356
000010d9: JUMP
000010da: JUMPDEST
000010db: DUP2
000010dc: MSTORE
000010dd: PUSH1 0x20
000010df: ADD
000010e0: SWAP1
000010e1: PUSH1 0x01
000010e3: ADD
000010e4: SWAP1
000010e5: PUSH2 0x10bd
000010e8: JUMP
000010e9: JUMPDEST
000010ea: POP
000010eb: POP
000010ec: POP
000010ed: POP
000010ee: POP
000010ef: PUSH2 0x288e
000010f2: JUMP
000010f3: JUMPDEST
000010f4: PUSH1 0x60
000010f6: PUSH0
000010f7: DUP3
000010f8: PUSH1 0x01
000010fa: PUSH1 0x01
000010fc: PUSH1 0x40
000010fe: SHL
000010ff: SUB
00001100: DUP2
00001101: GT
00001102: ISZERO
00001103: PUSH2 0x110e
00001106: JUMPI
00001107: PUSH2 0x110e
0000110a: PUSH2 0x46ae
0000110d: JUMP
0000110e: JUMPDEST
0000110f: PUSH1 0x40
00001111: MLOAD
00001112: SWAP1
00001113: DUP1
00001114: DUP3
00001115: MSTORE
00001116: DUP1
00001117: PUSH1 0x20
00001119: MUL
0000111a: PUSH1 0x20
0000111c: ADD
0000111d: DUP3
0000111e: ADD
0000111f: PUSH1 0x40
00001121: MSTORE
00001122: DUP1
00001123: ISZERO
00001124: PUSH2 0x1152
00001127: JUMPI
00001128: DUP2
00001129: PUSH1 0x20
0000112b: ADD
0000112c: JUMPDEST
0000112d: PUSH1 0x40
0000112f: DUP1
00001130: MLOAD
00001131: DUP1
00001132: DUP3
00001133: ADD
00001134: SWAP1
00001135: SWAP2
00001136: MSTORE
00001137: PUSH0
00001138: DUP1
00001139: DUP3
0000113a: MSTORE
0000113b: PUSH1 0x20
0000113d: DUP3
0000113e: ADD
0000113f: MSTORE
00001140: DUP2
00001141: MSTORE
00001142: PUSH1 0x20
00001144: ADD
00001145: SWAP1
00001146: PUSH1 0x01
00001148: SWAP1
00001149: SUB
0000114a: SWAP1
0000114b: DUP2
0000114c: PUSH2 0x112c
0000114f: JUMPI
00001150: SWAP1
00001151: POP
00001152: JUMPDEST
00001153: POP
00001154: SWAP1
00001155: POP
00001156: PUSH0
00001157: JUMPDEST
00001158: DUP4
00001159: DUP2
0000115a: LT
0000115b: ISZERO
0000115c: PUSH2 0x0e5e
0000115f: JUMPI
00001160: PUSH1 0x08
00001162: PUSH0
00001163: DUP7
00001164: DUP7
00001165: DUP5
00001166: DUP2
00001167: DUP2
00001168: LT
00001169: PUSH2 0x1174
0000116c: JUMPI
0000116d: PUSH2 0x1174
00001170: PUSH2 0x52f4
00001173: JUMP
00001174: JUMPDEST
00001175: SWAP1
00001176: POP
00001177: PUSH1 0x20
00001179: MUL
0000117a: ADD
0000117b: PUSH1 0x20
0000117d: DUP2
0000117e: ADD
0000117f: SWAP1
00001180: PUSH2 0x1189
00001183: SWAP2
00001184: SWAP1
00001185: PUSH2 0x5308
00001188: JUMP
00001189: JUMPDEST
0000118a: PUSH1 0x01
0000118c: PUSH1 0x01
0000118e: PUSH1 0x80
00001190: SHL
00001191: SUB
00001192: NOT
00001193: AND
00001194: DUP2
00001195: MSTORE
00001196: PUSH1 0x20
00001198: DUP1
00001199: DUP3
0000119a: ADD
0000119b: SWAP3
0000119c: SWAP1
0000119d: SWAP3
0000119e: MSTORE
0000119f: PUSH1 0x40
000011a1: SWAP1
000011a2: DUP2
000011a3: ADD
000011a4: PUSH0
000011a5: KECCAK256
000011a6: DUP2
000011a7: MLOAD
000011a8: DUP1
000011a9: DUP4
000011aa: ADD
000011ab: SWAP1
000011ac: SWAP3
000011ad: MSTORE
000011ae: DUP1
000011af: SLOAD
000011b0: DUP3
000011b1: MSTORE
000011b2: PUSH1 0x01
000011b4: ADD
000011b5: SLOAD
000011b6: PUSH1 0x01
000011b8: PUSH1 0x01
000011ba: PUSH1 0x40
000011bc: SHL
000011bd: SUB
000011be: AND
000011bf: SWAP2
000011c0: DUP2
000011c1: ADD
000011c2: SWAP2
000011c3: SWAP1
000011c4: SWAP2
000011c5: MSTORE
000011c6: DUP3
000011c7: MLOAD
000011c8: DUP4
000011c9: SWAP1
000011ca: DUP4
000011cb: SWAP1
000011cc: DUP2
000011cd: LT
000011ce: PUSH2 0x11d9
000011d1: JUMPI
000011d2: PUSH2 0x11d9
000011d5: PUSH2 0x52f4
000011d8: JUMP
000011d9: JUMPDEST
000011da: PUSH1 0x20
000011dc: SWAP1
000011dd: DUP2
000011de: MUL
000011df: SWAP2
000011e0: SWAP1
000011e1: SWAP2
000011e2: ADD
000011e3: ADD
000011e4: MSTORE
000011e5: PUSH1 0x01
000011e7: ADD
000011e8: PUSH2 0x1157
000011eb: JUMP
000011ec: JUMPDEST
000011ed: PUSH0
000011ee: DUP1
000011ef: MLOAD
000011f0: PUSH1 0x20
000011f2: PUSH2 0x5abe
000011f5: DUP4
000011f6: CODECOPY
000011f7: DUP2
000011f8: MLOAD
000011f9: SWAP2
000011fa: MSTORE
000011fb: PUSH2 0x1203
000011fe: DUP2
000011ff: PUSH2 0x2b82
00001202: JUMP
00001203: JUMPDEST
00001204: POP
00001205: PUSH1 0x01
00001207: DUP1
00001208: SLOAD
00001209: PUSH1 0x01
0000120b: PUSH1 0x01
0000120d: PUSH1 0xa0
0000120f: SHL
00001210: SUB
00001211: NOT
00001212: AND
00001213: PUSH1 0x01
00001215: PUSH1 0x01
00001217: PUSH1 0xa0
00001219: SHL
0000121a: SUB
0000121b: SWAP3
0000121c: SWAP1
0000121d: SWAP3
0000121e: AND
0000121f: SWAP2
00001220: SWAP1
00001221: SWAP2
00001222: OR
00001223: SWAP1
00001224: SSTORE
00001225: JUMP
00001226: JUMPDEST
00001227: PUSH1 0x60
00001229: PUSH0
0000122a: DUP3
0000122b: PUSH1 0x01
0000122d: PUSH1 0x01
0000122f: PUSH1 0x40
00001231: SHL
00001232: SUB
00001233: DUP2
00001234: GT
00001235: ISZERO
00001236: PUSH2 0x1241
00001239: JUMPI
0000123a: PUSH2 0x1241
0000123d: PUSH2 0x46ae
00001240: JUMP
00001241: JUMPDEST
00001242: PUSH1 0x40
00001244: MLOAD
00001245: SWAP1
00001246: DUP1
00001247: DUP3
00001248: MSTORE
00001249: DUP1
0000124a: PUSH1 0x20
0000124c: MUL
0000124d: PUSH1 0x20
0000124f: ADD
00001250: DUP3
00001251: ADD
00001252: PUSH1 0x40
00001254: MSTORE
00001255: DUP1
00001256: ISZERO
00001257: PUSH2 0x126a
0000125a: JUMPI
0000125b: DUP2
0000125c: PUSH1 0x20
0000125e: ADD
0000125f: PUSH1 0x20
00001261: DUP3
00001262: MUL
00001263: DUP1
00001264: CALLDATASIZE
00001265: DUP4
00001266: CALLDATACOPY
00001267: ADD
00001268: SWAP1
00001269: POP
0000126a: JUMPDEST
0000126b: POP
0000126c: SWAP1
0000126d: POP
0000126e: PUSH0
0000126f: JUMPDEST
00001270: DUP4
00001271: DUP2
00001272: LT
00001273: ISZERO
00001274: PUSH2 0x0e5e
00001277: JUMPI
00001278: PUSH2 0x12f5
0000127b: DUP6
0000127c: DUP6
0000127d: DUP4
0000127e: DUP2
0000127f: DUP2
00001280: LT
00001281: PUSH2 0x128c
00001284: JUMPI
00001285: PUSH2 0x128c
00001288: PUSH2 0x52f4
0000128b: JUMP
0000128c: JUMPDEST
0000128d: SWAP1
0000128e: POP
0000128f: PUSH1 0x20
00001291: MUL
00001292: ADD
00001293: PUSH1 0x20
00001295: DUP2
00001296: ADD
00001297: SWAP1
00001298: PUSH2 0x12a1
0000129b: SWAP2
0000129c: SWAP1
0000129d: PUSH2 0x5308
000012a0: JUMP
000012a1: JUMPDEST
000012a2: PUSH1 0x0b
000012a4: PUSH0
000012a5: DUP9
000012a6: DUP9
000012a7: DUP7
000012a8: DUP2
000012a9: DUP2
000012aa: LT
000012ab: PUSH2 0x12b6
000012ae: JUMPI
000012af: PUSH2 0x12b6
000012b2: PUSH2 0x52f4
000012b5: JUMP
000012b6: JUMPDEST
000012b7: SWAP1
000012b8: POP
000012b9: PUSH1 0x20
000012bb: MUL
000012bc: ADD
000012bd: PUSH1 0x20
000012bf: DUP2
000012c0: ADD
000012c1: SWAP1
000012c2: PUSH2 0x12cb
000012c5: SWAP2
000012c6: SWAP1
000012c7: PUSH2 0x5308
000012ca: JUMP
000012cb: JUMPDEST
000012cc: PUSH1 0x01
000012ce: PUSH1 0x01
000012d0: PUSH1 0x80
000012d2: SHL
000012d3: SUB
000012d4: NOT
000012d5: AND
000012d6: DUP2
000012d7: MSTORE
000012d8: PUSH1 0x20
000012da: DUP2
000012db: ADD
000012dc: SWAP2
000012dd: SWAP1
000012de: SWAP2
000012df: MSTORE
000012e0: PUSH1 0x40
000012e2: ADD
000012e3: PUSH0
000012e4: KECCAK256
000012e5: SLOAD
000012e6: PUSH1 0x01
000012e8: PUSH1 0xa0
000012ea: SHL
000012eb: SWAP1
000012ec: DIV
000012ed: PUSH2 0xffff
000012f0: AND
000012f1: PUSH2 0x2f7e
000012f4: JUMP
000012f5: JUMPDEST
000012f6: DUP3
000012f7: DUP3
000012f8: DUP2
000012f9: MLOAD
000012fa: DUP2
000012fb: LT
000012fc: PUSH2 0x1307
000012ff: JUMPI
00001300: PUSH2 0x1307
00001303: PUSH2 0x52f4
00001306: JUMP
00001307: JUMPDEST
00001308: PUSH1 0x20
0000130a: SWAP1
0000130b: DUP2
0000130c: MUL
0000130d: SWAP2
0000130e: SWAP1
0000130f: SWAP2
00001310: ADD
00001311: ADD
00001312: MSTORE
00001313: PUSH1 0x01
00001315: ADD
00001316: PUSH2 0x126f
00001319: JUMP
0000131a: JUMPDEST
0000131b: PUSH0
0000131c: DUP1
0000131d: MLOAD
0000131e: PUSH1 0x20
00001320: PUSH2 0x5abe
00001323: DUP4
00001324: CODECOPY
00001325: DUP2
00001326: MLOAD
00001327: SWAP2
00001328: MSTORE
00001329: PUSH2 0x1331
0000132c: DUP2
0000132d: PUSH2 0x2b82
00001330: JUMP
00001331: JUMPDEST
00001332: POP
00001333: PUSH1 0x02
00001335: DUP1
00001336: SLOAD
00001337: SWAP2
00001338: ISZERO
00001339: ISZERO
0000133a: PUSH1 0x01
0000133c: PUSH1 0xa8
0000133e: SHL
0000133f: MUL
00001340: PUSH1 0xff
00001342: PUSH1 0xa8
00001344: SHL
00001345: NOT
00001346: SWAP1
00001347: SWAP3
00001348: AND
00001349: SWAP2
0000134a: SWAP1
0000134b: SWAP2
0000134c: OR
0000134d: SWAP1
0000134e: SSTORE
0000134f: JUMP
00001350: JUMPDEST
00001351: PUSH0
00001352: DUP1
00001353: MLOAD
00001354: PUSH1 0x20
00001356: PUSH2 0x5abe
00001359: DUP4
0000135a: CODECOPY
0000135b: DUP2
0000135c: MLOAD
0000135d: SWAP2
0000135e: MSTORE
0000135f: PUSH2 0x1367
00001362: DUP2
00001363: PUSH2 0x2b82
00001366: JUMP
00001367: JUMPDEST
00001368: PUSH2 0x0e82
0000136b: PUSH1 0x01
0000136d: PUSH1 0x01
0000136f: PUSH1 0xa0
00001371: SHL
00001372: SUB
00001373: DUP6
00001374: AND
00001375: DUP5
00001376: DUP5
00001377: PUSH2 0x2fc0
0000137a: JUMP
0000137b: JUMPDEST
0000137c: PUSH0
0000137d: DUP1
0000137e: MLOAD
0000137f: PUSH1 0x20
00001381: PUSH2 0x5b3e
00001384: DUP4
00001385: CODECOPY
00001386: DUP2
00001387: MLOAD
00001388: SWAP2
00001389: MSTORE
0000138a: PUSH2 0x1392
0000138d: DUP2
0000138e: PUSH2 0x2b82
00001391: JUMP
00001392: JUMPDEST
00001393: PUSH2 0x13a9
00001396: PUSH2 0x13a4
00001399: CALLDATASIZE
0000139a: DUP5
0000139b: SWAP1
0000139c: SUB
0000139d: DUP5
0000139e: ADD
0000139f: DUP5
000013a0: PUSH2 0x5370
000013a3: JUMP
000013a4: JUMPDEST
000013a5: PUSH2 0x245d
000013a8: JUMP
000013a9: JUMPDEST
000013aa: DUP2
000013ab: PUSH0
000013ac: PUSH2 0x13b5
000013af: DUP3
000013b0: DUP3
000013b1: PUSH2 0x538a
000013b4: JUMP
000013b5: JUMPDEST
000013b6: POP
000013b7: POP
000013b8: PUSH1 0x40
000013ba: MLOAD
000013bb: PUSH4 0x601ed31b
000013c0: PUSH1 0xe0
000013c2: SHL
000013c3: SWAP1
000013c4: PUSH32 0x11f2fec7a1604d7d8ea8b74ed1666060410561f7e666aee037dcf3f9292cb4c1
000013e5: SWAP1
000013e6: PUSH2 0x13f3
000013e9: SWAP1
000013ea: DUP6
000013eb: SWAP1
000013ec: PUSH1 0x20
000013ee: ADD
000013ef: PUSH2 0x53fd
000013f2: JUMP
000013f3: JUMPDEST
000013f4: PUSH1 0x40
000013f6: DUP1
000013f7: MLOAD
000013f8: PUSH1 0x1f
000013fa: NOT
000013fb: DUP2
000013fc: DUP5
000013fd: SUB
000013fe: ADD
000013ff: DUP2
00001400: MSTORE
00001401: SWAP1
00001402: DUP3
00001403: SWAP1
00001404: MSTORE
00001405: PUSH2 0x140d
00001408: SWAP2
00001409: PUSH2 0x5455
0000140c: JUMP
0000140d: JUMPDEST
0000140e: PUSH1 0x40
00001410: MLOAD
00001411: DUP1
00001412: SWAP2
00001413: SUB
00001414: SWAP1
00001415: LOG2
00001416: POP
00001417: POP
00001418: JUMP
00001419: JUMPDEST
0000141a: PUSH0
0000141b: DUP1
0000141c: MLOAD
0000141d: PUSH1 0x20
0000141f: PUSH2 0x5ade
00001422: DUP4
00001423: CODECOPY
00001424: DUP2
00001425: MLOAD
00001426: SWAP2
00001427: MSTORE
00001428: PUSH2 0x1430
0000142b: DUP2
0000142c: PUSH2 0x2b82
0000142f: JUMP
00001430: JUMPDEST
00001431: PUSH1 0x01
00001433: SLOAD
00001434: PUSH1 0x40
00001436: MLOAD
00001437: PUSH4 0x9d84ae69
0000143c: PUSH1 0xe0
0000143e: SHL
0000143f: DUP2
00001440: MSTORE
00001441: PUSH32 0x35bd7c3085200665404055ee8facd7c7cf131f375247edf256b95933d81b07b4
00001462: PUSH1 0x04
00001464: DUP3
00001465: ADD
00001466: MSTORE
00001467: PUSH0
00001468: SWAP2
00001469: PUSH1 0x01
0000146b: PUSH1 0x01
0000146d: PUSH1 0xa0
0000146f: SHL
00001470: SUB
00001471: AND
00001472: SWAP1
00001473: PUSH4 0x9d84ae69
00001478: SWAP1
00001479: PUSH1 0x24
0000147b: ADD
0000147c: PUSH1 0x20
0000147e: PUSH1 0x40
00001480: MLOAD
00001481: DUP1
00001482: DUP4
00001483: SUB
00001484: DUP2
00001485: DUP7
00001486: GAS
00001487: STATICCALL
00001488: ISZERO
00001489: DUP1
0000148a: ISZERO
0000148b: PUSH2 0x1496
0000148e: JUMPI
0000148f: RETURNDATASIZE
00001490: PUSH0
00001491: DUP1
00001492: RETURNDATACOPY
00001493: RETURNDATASIZE
00001494: PUSH0
00001495: REVERT
00001496: JUMPDEST
00001497: POP
00001498: POP
00001499: POP
0000149a: POP
0000149b: PUSH1 0x40
0000149d: MLOAD
0000149e: RETURNDATASIZE
0000149f: PUSH1 0x1f
000014a1: NOT
000014a2: PUSH1 0x1f
000014a4: DUP3
000014a5: ADD
000014a6: AND
000014a7: DUP3
000014a8: ADD
000014a9: DUP1
000014aa: PUSH1 0x40
000014ac: MSTORE
000014ad: POP
000014ae: DUP2
000014af: ADD
000014b0: SWAP1
000014b1: PUSH2 0x14ba
000014b4: SWAP2
000014b5: SWAP1
000014b6: PUSH2 0x54a8
000014b9: JUMP
000014ba: JUMPDEST
000014bb: PUSH1 0x07
000014bd: SLOAD
000014be: SWAP1
000014bf: SWAP2
000014c0: POP
000014c1: PUSH0
000014c2: SWAP1
000014c3: PUSH2 0x14d1
000014c6: SWAP1
000014c7: DUP3
000014c8: SWAP1
000014c9: PUSH2 0xffff
000014cc: AND
000014cd: PUSH2 0x2f7e
000014d0: JUMP
000014d1: JUMPDEST
000014d2: SWAP1
000014d3: POP
000014d4: DUP1
000014d5: DUP5
000014d6: GT
000014d7: ISZERO
000014d8: PUSH2 0x1503
000014db: JUMPI
000014dc: PUSH1 0x40
000014de: MLOAD
000014df: PUSH4 0x0f4da979
000014e4: PUSH1 0xe4
000014e6: SHL
000014e7: DUP2
000014e8: MSTORE
000014e9: PUSH1 0x04
000014eb: DUP2
000014ec: ADD
000014ed: DUP6
000014ee: SWAP1
000014ef: MSTORE
000014f0: PUSH1 0x24
000014f2: DUP2
000014f3: ADD
000014f4: DUP3
000014f5: SWAP1
000014f6: MSTORE
000014f7: PUSH1 0x44
000014f9: ADD
000014fa: JUMPDEST
000014fb: PUSH1 0x40
000014fd: MLOAD
000014fe: DUP1
000014ff: SWAP2
00001500: SUB
00001501: SWAP1
00001502: REVERT
00001503: JUMPDEST
00001504: PUSH0
00001505: DUP1
00001506: DUP1
00001507: MSTORE
00001508: PUSH1 0x09
0000150a: PUSH1 0x20
0000150c: MSTORE
0000150d: PUSH32 0xec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b
0000152e: DUP1
0000152f: SLOAD
00001530: DUP7
00001531: SWAP3
00001532: SWAP1
00001533: PUSH2 0x153d
00001536: SWAP1
00001537: DUP5
00001538: SWAP1
00001539: PUSH2 0x54d7
0000153c: JUMP
0000153d: JUMPDEST
0000153e: SWAP3
0000153f: POP
00001540: POP
00001541: DUP2
00001542: SWAP1
00001543: SSTORE
00001544: POP
00001545: DUP4
00001546: PUSH1 0x06
00001548: PUSH0
00001549: DUP3
0000154a: DUP3
0000154b: SLOAD
0000154c: PUSH2 0x1555
0000154f: SWAP2
00001550: SWAP1
00001551: PUSH2 0x54d7
00001554: JUMP
00001555: JUMPDEST
00001556: SWAP1
00001557: SWAP2
00001558: SSTORE
00001559: POP
0000155a: POP
0000155b: PUSH1 0x03
0000155d: SLOAD
0000155e: PUSH1 0x40
00001560: MLOAD
00001561: PUSH1 0x01
00001563: PUSH1 0x01
00001565: PUSH1 0xa0
00001567: SHL
00001568: SUB
00001569: DUP5
0000156a: AND
0000156b: SWAP2
0000156c: PUSH0
0000156d: SWAP2
0000156e: PUSH1 0x80
00001570: SWAP2
00001571: SWAP1
00001572: SWAP2
00001573: SHL
00001574: PUSH1 0x01
00001576: PUSH1 0x01
00001578: PUSH1 0x80
0000157a: SHL
0000157b: SUB
0000157c: NOT
0000157d: AND
0000157e: SWAP1
0000157f: PUSH32 0x7ed4454676b40d92244b47fc7a6ef3aab0808cbf85d84fc65676a040343d4823
000015a0: SWAP1
000015a1: PUSH2 0x15ad
000015a4: SWAP1
000015a5: DUP10
000015a6: DUP2
000015a7: MSTORE
000015a8: PUSH1 0x20
000015aa: ADD
000015ab: SWAP1
000015ac: JUMP
000015ad: JUMPDEST
000015ae: PUSH1 0x40
000015b0: MLOAD
000015b1: DUP1
000015b2: SWAP2
000015b3: SUB
000015b4: SWAP1
000015b5: LOG4
000015b6: PUSH1 0x02
000015b8: SLOAD
000015b9: PUSH2 0x0e82
000015bc: SWAP1
000015bd: PUSH1 0x01
000015bf: PUSH1 0x01
000015c1: PUSH1 0xa0
000015c3: SHL
000015c4: SUB
000015c5: AND
000015c6: DUP4
000015c7: DUP7
000015c8: PUSH2 0x2fc0
000015cb: JUMP
000015cc: JUMPDEST
000015cd: PUSH1 0x60
000015cf: PUSH0
000015d0: DUP3
000015d1: PUSH1 0x01
000015d3: PUSH1 0x01
000015d5: PUSH1 0x40
000015d7: SHL
000015d8: SUB
000015d9: DUP2
000015da: GT
000015db: ISZERO
000015dc: PUSH2 0x15e7
000015df: JUMPI
000015e0: PUSH2 0x15e7
000015e3: PUSH2 0x46ae
000015e6: JUMP
000015e7: JUMPDEST
000015e8: PUSH1 0x40
000015ea: MLOAD
000015eb: SWAP1
000015ec: DUP1
000015ed: DUP3
000015ee: MSTORE
000015ef: DUP1
000015f0: PUSH1 0x20
000015f2: MUL
000015f3: PUSH1 0x20
000015f5: ADD
000015f6: DUP3
000015f7: ADD
000015f8: PUSH1 0x40
000015fa: MSTORE
000015fb: DUP1
000015fc: ISZERO
000015fd: PUSH2 0x162b
00001600: JUMPI
00001601: DUP2
00001602: PUSH1 0x20
00001604: ADD
00001605: JUMPDEST
00001606: PUSH1 0x40
00001608: DUP1
00001609: MLOAD
0000160a: DUP1
0000160b: DUP3
0000160c: ADD
0000160d: SWAP1
0000160e: SWAP2
0000160f: MSTORE
00001610: PUSH0
00001611: DUP1
00001612: DUP3
00001613: MSTORE
00001614: PUSH1 0x20
00001616: DUP3
00001617: ADD
00001618: MSTORE
00001619: DUP2
0000161a: MSTORE
0000161b: PUSH1 0x20
0000161d: ADD
0000161e: SWAP1
0000161f: PUSH1 0x01
00001621: SWAP1
00001622: SUB
00001623: SWAP1
00001624: DUP2
00001625: PUSH2 0x1605
00001628: JUMPI
00001629: SWAP1
0000162a: POP
0000162b: JUMPDEST
0000162c: POP
0000162d: SWAP1
0000162e: POP
0000162f: PUSH0
00001630: JUMPDEST
00001631: DUP4
00001632: DUP2
00001633: LT
00001634: ISZERO
00001635: PUSH2 0x0e5e
00001638: JUMPI
00001639: PUSH1 0x0b
0000163b: PUSH0
0000163c: DUP7
0000163d: DUP7
0000163e: DUP5
0000163f: DUP2
00001640: DUP2
00001641: LT
00001642: PUSH2 0x164d
00001645: JUMPI
00001646: PUSH2 0x164d
00001649: PUSH2 0x52f4
0000164c: JUMP
0000164d: JUMPDEST
0000164e: SWAP1
0000164f: POP
00001650: PUSH1 0x20
00001652: MUL
00001653: ADD
00001654: PUSH1 0x20
00001656: DUP2
00001657: ADD
00001658: SWAP1
00001659: PUSH2 0x1662
0000165c: SWAP2
0000165d: SWAP1
0000165e: PUSH2 0x5308
00001661: JUMP
00001662: JUMPDEST
00001663: PUSH1 0x01
00001665: PUSH1 0x01
00001667: PUSH1 0x80
00001669: SHL
0000166a: SUB
0000166b: NOT
0000166c: AND
0000166d: DUP2
0000166e: MSTORE
0000166f: PUSH1 0x20
00001671: DUP1
00001672: DUP3
00001673: ADD
00001674: SWAP3
00001675: SWAP1
00001676: SWAP3
00001677: MSTORE
00001678: PUSH1 0x40
0000167a: SWAP1
0000167b: DUP2
0000167c: ADD
0000167d: PUSH0
0000167e: KECCAK256
0000167f: DUP2
00001680: MLOAD
00001681: DUP1
00001682: DUP4
00001683: ADD
00001684: SWAP1
00001685: SWAP3
00001686: MSTORE
00001687: SLOAD
00001688: PUSH1 0x01
0000168a: PUSH1 0x01
0000168c: PUSH1 0xa0
0000168e: SHL
0000168f: SUB
00001690: DUP2
00001691: AND
00001692: DUP3
00001693: MSTORE
00001694: PUSH1 0x01
00001696: PUSH1 0xa0
00001698: SHL
00001699: SWAP1
0000169a: DIV
0000169b: PUSH2 0xffff
0000169e: AND
0000169f: SWAP2
000016a0: DUP2
000016a1: ADD
000016a2: SWAP2
000016a3: SWAP1
000016a4: SWAP2
000016a5: MSTORE
000016a6: DUP3
000016a7: MLOAD
000016a8: DUP4
000016a9: SWAP1
000016aa: DUP4
000016ab: SWAP1
000016ac: DUP2
000016ad: LT
000016ae: PUSH2 0x16b9
000016b1: JUMPI
000016b2: PUSH2 0x16b9
000016b5: PUSH2 0x52f4
000016b8: JUMP
000016b9: JUMPDEST
000016ba: PUSH1 0x20
000016bc: SWAP1
000016bd: DUP2
000016be: MUL
000016bf: SWAP2
000016c0: SWAP1
000016c1: SWAP2
000016c2: ADD
000016c3: ADD
000016c4: MSTORE
000016c5: PUSH1 0x01
000016c7: ADD
000016c8: PUSH2 0x1630
000016cb: JUMP
000016cc: JUMPDEST
000016cd: PUSH0
000016ce: DUP1
000016cf: MLOAD
000016d0: PUSH1 0x20
000016d2: PUSH2 0x5b5e
000016d5: DUP4
000016d6: CODECOPY
000016d7: DUP2
000016d8: MLOAD
000016d9: SWAP2
000016da: MSTORE
000016db: PUSH2 0x16e3
000016de: DUP2
000016df: PUSH2 0x2b82
000016e2: JUMP
000016e3: JUMPDEST
000016e4: PUSH1 0x04
000016e6: SLOAD
000016e7: PUSH0
000016e8: JUMPDEST
000016e9: DUP4
000016ea: DUP2
000016eb: LT
000016ec: ISZERO
000016ed: PUSH2 0x180c
000016f0: JUMPI
000016f1: PUSH0
000016f2: DUP6
000016f3: DUP6
000016f4: DUP4
000016f5: DUP2
000016f6: DUP2
000016f7: LT
000016f8: PUSH2 0x1703
000016fb: JUMPI
000016fc: PUSH2 0x1703
000016ff: PUSH2 0x52f4
00001702: JUMP
00001703: JUMPDEST
00001704: PUSH2 0x1719
00001707: SWAP3
00001708: PUSH1 0x20
0000170a: PUSH1 0x60
0000170c: SWAP1
0000170d: SWAP3
0000170e: MUL
0000170f: ADD
00001710: SWAP1
00001711: DUP2
00001712: ADD
00001713: SWAP2
00001714: POP
00001715: PUSH2 0x5308
00001718: JUMP
00001719: JUMPDEST
0000171a: SWAP1
0000171b: POP
0000171c: CALLDATASIZE
0000171d: DUP7
0000171e: DUP7
0000171f: DUP5
00001720: DUP2
00001721: DUP2
00001722: LT
00001723: PUSH2 0x172e
00001726: JUMPI
00001727: PUSH2 0x172e
0000172a: PUSH2 0x52f4
0000172d: JUMP
0000172e: JUMPDEST
0000172f: SWAP1
00001730: POP
00001731: PUSH1 0x60
00001733: MUL
00001734: ADD
00001735: PUSH1 0x20
00001737: ADD
00001738: SWAP1
00001739: POP
0000173a: PUSH0
0000173b: DUP2
0000173c: PUSH1 0x20
0000173e: ADD
0000173f: PUSH1 0x20
00001741: DUP2
00001742: ADD
00001743: SWAP1
00001744: PUSH2 0x174d
00001747: SWAP2
00001748: SWAP1
00001749: PUSH2 0x533b
0000174c: JUMP
0000174d: JUMPDEST
0000174e: PUSH1 0x01
00001750: PUSH1 0x01
00001752: PUSH1 0x40
00001754: SHL
00001755: SUB
00001756: AND
00001757: GT
00001758: ISZERO
00001759: ISZERO
0000175a: PUSH0
0000175b: DUP3
0000175c: PUSH0
0000175d: ADD
0000175e: CALLDATALOAD
0000175f: GT
00001760: ISZERO
00001761: ISZERO
00001762: EQ
00001763: PUSH2 0x178b
00001766: JUMPI
00001767: PUSH1 0x40
00001769: MLOAD
0000176a: PUSH4 0x29a440e1
0000176f: PUSH1 0xe0
00001771: SHL
00001772: DUP2
00001773: MSTORE
00001774: PUSH1 0x01
00001776: PUSH1 0x01
00001778: PUSH1 0x80
0000177a: SHL
0000177b: SUB
0000177c: NOT
0000177d: DUP4
0000177e: AND
0000177f: PUSH1 0x04
00001781: DUP3
00001782: ADD
00001783: MSTORE
00001784: PUSH1 0x24
00001786: ADD
00001787: PUSH2 0x14fa
0000178a: JUMP
0000178b: JUMPDEST
0000178c: PUSH1 0x01
0000178e: PUSH1 0x01
00001790: PUSH1 0x80
00001792: SHL
00001793: SUB
00001794: NOT
00001795: DUP3
00001796: AND
00001797: PUSH0
00001798: SWAP1
00001799: DUP2
0000179a: MSTORE
0000179b: PUSH1 0x08
0000179d: PUSH1 0x20
0000179f: MSTORE
000017a0: PUSH1 0x40
000017a2: SWAP1
000017a3: KECCAK256
000017a4: SLOAD
000017a5: ISZERO
000017a6: PUSH2 0x17ce
000017a9: JUMPI
000017aa: PUSH1 0x40
000017ac: MLOAD
000017ad: PUSH4 0x536c1045
000017b2: PUSH1 0xe1
000017b4: SHL
000017b5: DUP2
000017b6: MSTORE
000017b7: PUSH1 0x01
000017b9: PUSH1 0x01
000017bb: PUSH1 0x80
000017bd: SHL
000017be: SUB
000017bf: NOT
000017c0: DUP4
000017c1: AND
000017c2: PUSH1 0x04
000017c4: DUP3
000017c5: ADD
000017c6: MSTORE
000017c7: PUSH1 0x24
000017c9: ADD
000017ca: PUSH2 0x14fa
000017cd: JUMP
000017ce: JUMPDEST
000017cf: PUSH1 0x01
000017d1: PUSH1 0x01
000017d3: PUSH1 0x80
000017d5: SHL
000017d6: SUB
000017d7: NOT
000017d8: DUP3
000017d9: AND
000017da: PUSH0
000017db: SWAP1
000017dc: DUP2
000017dd: MSTORE
000017de: PUSH1 0x08
000017e0: PUSH1 0x20
000017e2: MSTORE
000017e3: PUSH1 0x40
000017e5: SWAP1
000017e6: KECCAK256
000017e7: DUP2
000017e8: SWAP1
000017e9: PUSH2 0x17f2
000017ec: DUP3
000017ed: DUP3
000017ee: PUSH2 0x54ea
000017f1: JUMP
000017f2: JUMPDEST
000017f3: POP
000017f4: PUSH2 0x1800
000017f7: SWAP1
000017f8: POP
000017f9: DUP2
000017fa: CALLDATALOAD
000017fb: DUP6
000017fc: PUSH2 0x54d7
000017ff: JUMP
00001800: JUMPDEST
00001801: SWAP4
00001802: POP
00001803: POP
00001804: POP
00001805: PUSH1 0x01
00001807: ADD
00001808: PUSH2 0x16e8
0000180b: JUMP
0000180c: JUMPDEST
0000180d: POP
0000180e: PUSH1 0x04
00001810: SSTORE
00001811: POP
00001812: POP
00001813: POP
00001814: JUMP
00001815: JUMPDEST
00001816: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
00001837: PUSH2 0x183f
0000183a: DUP2
0000183b: PUSH2 0x2b82
0000183e: JUMP
0000183f: JUMPDEST
00001840: PUSH2 0x1848
00001843: PUSH0
00001844: PUSH2 0x2b8c
00001847: JUMP
00001848: JUMPDEST
00001849: POP
0000184a: JUMP
0000184b: JUMPDEST
0000184c: PUSH0
0000184d: PUSH1 0x60
0000184f: DUP1
00001850: DUP3
00001851: DUP1
00001852: DUP1
00001853: DUP4
00001854: DUP2
00001855: PUSH0
00001856: DUP1
00001857: MLOAD
00001858: PUSH1 0x20
0000185a: PUSH2 0x5a9e
0000185d: DUP4
0000185e: CODECOPY
0000185f: DUP2
00001860: MLOAD
00001861: SWAP2
00001862: MSTORE
00001863: DUP1
00001864: SLOAD
00001865: SWAP1
00001866: SWAP2
00001867: POP
00001868: ISZERO
00001869: DUP1
0000186a: ISZERO
0000186b: PUSH2 0x1876
0000186e: JUMPI
0000186f: POP
00001870: PUSH1 0x01
00001872: DUP2
00001873: ADD
00001874: SLOAD
00001875: ISZERO
00001876: JUMPDEST
00001877: PUSH2 0x18ba
0000187a: JUMPI
0000187b: PUSH1 0x40
0000187d: MLOAD
0000187e: PUSH3 0x461bcd
00001882: PUSH1 0xe5
00001884: SHL
00001885: DUP2
00001886: MSTORE
00001887: PUSH1 0x20
00001889: PUSH1 0x04
0000188b: DUP3
0000188c: ADD
0000188d: MSTORE
0000188e: PUSH1 0x15
00001890: PUSH1 0x24
00001892: DUP3
00001893: ADD
00001894: MSTORE
00001895: PUSH21 0x1152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959
000018ab: PUSH1 0x5a
000018ad: SHL
000018ae: PUSH1 0x44
000018b0: DUP3
000018b1: ADD
000018b2: MSTORE
000018b3: PUSH1 0x64
000018b5: ADD
000018b6: PUSH2 0x14fa
000018b9: JUMP
000018ba: JUMPDEST
000018bb: PUSH2 0x18c2
000018be: PUSH2 0x3012
000018c1: JUMP
000018c2: JUMPDEST
000018c3: PUSH2 0x18ca
000018c6: PUSH2 0x30d2
000018c9: JUMP
000018ca: JUMPDEST
000018cb: PUSH1 0x40
000018cd: DUP1
000018ce: MLOAD
000018cf: PUSH0
000018d0: DUP1
000018d1: DUP3
000018d2: MSTORE
000018d3: PUSH1 0x20
000018d5: DUP3
000018d6: ADD
000018d7: SWAP1
000018d8: SWAP3
000018d9: MSTORE
000018da: PUSH1 0x0f
000018dc: PUSH1 0xf8
000018de: SHL
000018df: SWAP13
000018e0: SWAP4
000018e1: SWAP12
000018e2: POP
000018e3: SWAP2
000018e4: SWAP10
000018e5: POP
000018e6: CHAINID
000018e7: SWAP9
000018e8: POP
000018e9: ADDRESS
000018ea: SWAP8
000018eb: POP
000018ec: SWAP6
000018ed: POP
000018ee: SWAP4
000018ef: POP
000018f0: SWAP2
000018f1: POP
000018f2: POP
000018f3: JUMP
000018f4: JUMPDEST
000018f5: PUSH0
000018f6: DUP3
000018f7: DUP2
000018f8: MSTORE
000018f9: PUSH0
000018fa: DUP1
000018fb: MLOAD
000018fc: PUSH1 0x20
000018fe: PUSH2 0x5a7e
00001901: DUP4
00001902: CODECOPY
00001903: DUP2
00001904: MLOAD
00001905: SWAP2
00001906: MSTORE
00001907: PUSH1 0x20
00001909: DUP2
0000190a: SWAP1
0000190b: MSTORE
0000190c: PUSH1 0x40
0000190e: DUP3
0000190f: KECCAK256
00001910: PUSH2 0x1919
00001913: SWAP1
00001914: DUP5
00001915: PUSH2 0x3110
00001918: JUMP
00001919: JUMPDEST
0000191a: SWAP5
0000191b: SWAP4
0000191c: POP
0000191d: POP
0000191e: POP
0000191f: POP
00001920: JUMP
00001921: JUMPDEST
00001922: PUSH0
00001923: SWAP2
00001924: DUP3
00001925: MSTORE
00001926: PUSH0
00001927: DUP1
00001928: MLOAD
00001929: PUSH1 0x20
0000192b: PUSH2 0x5b1e
0000192e: DUP4
0000192f: CODECOPY
00001930: DUP2
00001931: MLOAD
00001932: SWAP2
00001933: MSTORE
00001934: PUSH1 0x20
00001936: SWAP1
00001937: DUP2
00001938: MSTORE
00001939: PUSH1 0x40
0000193b: DUP1
0000193c: DUP5
0000193d: KECCAK256
0000193e: PUSH1 0x01
00001940: PUSH1 0x01
00001942: PUSH1 0xa0
00001944: SHL
00001945: SUB
00001946: SWAP4
00001947: SWAP1
00001948: SWAP4
00001949: AND
0000194a: DUP5
0000194b: MSTORE
0000194c: SWAP2
0000194d: SWAP1
0000194e: MSTORE
0000194f: SWAP1
00001950: KECCAK256
00001951: SLOAD
00001952: PUSH1 0xff
00001954: AND
00001955: SWAP1
00001956: JUMP
00001957: JUMPDEST
00001958: PUSH1 0x07
0000195a: SLOAD
0000195b: PUSH0
0000195c: SWAP1
0000195d: PUSH2 0x196b
00001960: SWAP1
00001961: DUP3
00001962: SWAP1
00001963: PUSH2 0xffff
00001966: AND
00001967: PUSH2 0x2f7e
0000196a: JUMP
0000196b: JUMPDEST
0000196c: SWAP1
0000196d: POP
0000196e: SWAP1
0000196f: JUMP
00001970: JUMPDEST
00001971: PUSH1 0x60
00001973: PUSH1 0x0c
00001975: DUP1
00001976: SLOAD
00001977: DUP1
00001978: PUSH1 0x20
0000197a: MUL
0000197b: PUSH1 0x20
0000197d: ADD
0000197e: PUSH1 0x40
00001980: MLOAD
00001981: SWAP1
00001982: DUP2
00001983: ADD
00001984: PUSH1 0x40
00001986: MSTORE
00001987: DUP1
00001988: SWAP3
00001989: SWAP2
0000198a: SWAP1
0000198b: DUP2
0000198c: DUP2
0000198d: MSTORE
0000198e: PUSH1 0x20
00001990: ADD
00001991: DUP3
00001992: DUP1
00001993: SLOAD
00001994: DUP1
00001995: ISZERO
00001996: PUSH2 0x19e8
00001999: JUMPI
0000199a: PUSH1 0x20
0000199c: MUL
0000199d: DUP3
0000199e: ADD
0000199f: SWAP2
000019a0: SWAP1
000019a1: PUSH0
000019a2: MSTORE
000019a3: PUSH1 0x20
000019a5: PUSH0
000019a6: KECCAK256
000019a7: SWAP1
000019a8: PUSH0
000019a9: SWAP1
000019aa: JUMPDEST
000019ab: DUP3
000019ac: DUP3
000019ad: SWAP1
000019ae: SLOAD
000019af: SWAP1
000019b0: PUSH2 0x0100
000019b3: EXP
000019b4: SWAP1
000019b5: DIV
000019b6: PUSH1 0x80
000019b8: SHL
000019b9: PUSH1 0x01
000019bb: PUSH1 0x01
000019bd: PUSH1 0x80
000019bf: SHL
000019c0: SUB
000019c1: NOT
000019c2: AND
000019c3: DUP2
000019c4: MSTORE
000019c5: PUSH1 0x20
000019c7: ADD
000019c8: SWAP1
000019c9: PUSH1 0x10
000019cb: ADD
000019cc: SWAP1
000019cd: PUSH1 0x20
000019cf: DUP3
000019d0: PUSH1 0x0f
000019d2: ADD
000019d3: DIV
000019d4: SWAP3
000019d5: DUP4
000019d6: ADD
000019d7: SWAP3
000019d8: PUSH1 0x01
000019da: SUB
000019db: DUP3
000019dc: MUL
000019dd: SWAP2
000019de: POP
000019df: DUP1
000019e0: DUP5
000019e1: GT
000019e2: PUSH2 0x19aa
000019e5: JUMPI
000019e6: SWAP1
000019e7: POP
000019e8: JUMPDEST
000019e9: POP
000019ea: POP
000019eb: POP
000019ec: POP
000019ed: POP
000019ee: SWAP1
000019ef: POP
000019f0: SWAP1
000019f1: JUMP
000019f2: JUMPDEST
000019f3: PUSH1 0x60
000019f5: PUSH0
000019f6: DUP3
000019f7: PUSH1 0x01
000019f9: PUSH1 0x01
000019fb: PUSH1 0x40
000019fd: SHL
000019fe: SUB
000019ff: DUP2
00001a00: GT
00001a01: ISZERO
00001a02: PUSH2 0x1a0d
00001a05: JUMPI
00001a06: PUSH2 0x1a0d
00001a09: PUSH2 0x46ae
00001a0c: JUMP
00001a0d: JUMPDEST
00001a0e: PUSH1 0x40
00001a10: MLOAD
00001a11: SWAP1
00001a12: DUP1
00001a13: DUP3
00001a14: MSTORE
00001a15: DUP1
00001a16: PUSH1 0x20
00001a18: MUL
00001a19: PUSH1 0x20
00001a1b: ADD
00001a1c: DUP3
00001a1d: ADD
00001a1e: PUSH1 0x40
00001a20: MSTORE
00001a21: DUP1
00001a22: ISZERO
00001a23: PUSH2 0x1a36
00001a26: JUMPI
00001a27: DUP2
00001a28: PUSH1 0x20
00001a2a: ADD
00001a2b: PUSH1 0x20
00001a2d: DUP3
00001a2e: MUL
00001a2f: DUP1
00001a30: CALLDATASIZE
00001a31: DUP4
00001a32: CALLDATACOPY
00001a33: ADD
00001a34: SWAP1
00001a35: POP
00001a36: JUMPDEST
00001a37: POP
00001a38: SWAP1
00001a39: POP
00001a3a: PUSH0
00001a3b: JUMPDEST
00001a3c: DUP4
00001a3d: DUP2
00001a3e: LT
00001a3f: ISZERO
00001a40: PUSH2 0x0e5e
00001a43: JUMPI
00001a44: PUSH1 0x08
00001a46: PUSH0
00001a47: DUP7
00001a48: DUP7
00001a49: DUP5
00001a4a: DUP2
00001a4b: DUP2
00001a4c: LT
00001a4d: PUSH2 0x1a58
00001a50: JUMPI
00001a51: PUSH2 0x1a58
00001a54: PUSH2 0x52f4
00001a57: JUMP
00001a58: JUMPDEST
00001a59: SWAP1
00001a5a: POP
00001a5b: PUSH1 0x20
00001a5d: MUL
00001a5e: ADD
00001a5f: PUSH1 0x20
00001a61: DUP2
00001a62: ADD
00001a63: SWAP1
00001a64: PUSH2 0x1a6d
00001a67: SWAP2
00001a68: SWAP1
00001a69: PUSH2 0x5308
00001a6c: JUMP
00001a6d: JUMPDEST
00001a6e: PUSH1 0x01
00001a70: PUSH1 0x01
00001a72: PUSH1 0x80
00001a74: SHL
00001a75: SUB
00001a76: NOT
00001a77: AND
00001a78: DUP2
00001a79: MSTORE
00001a7a: PUSH1 0x20
00001a7c: DUP2
00001a7d: ADD
00001a7e: SWAP2
00001a7f: SWAP1
00001a80: SWAP2
00001a81: MSTORE
00001a82: PUSH1 0x40
00001a84: ADD
00001a85: PUSH0
00001a86: KECCAK256
00001a87: SLOAD
00001a88: DUP3
00001a89: MLOAD
00001a8a: DUP4
00001a8b: SWAP1
00001a8c: DUP4
00001a8d: SWAP1
00001a8e: DUP2
00001a8f: LT
00001a90: PUSH2 0x1a9b
00001a93: JUMPI
00001a94: PUSH2 0x1a9b
00001a97: PUSH2 0x52f4
00001a9a: JUMP
00001a9b: JUMPDEST
00001a9c: PUSH1 0x20
00001a9e: SWAP1
00001a9f: DUP2
00001aa0: MUL
00001aa1: SWAP2
00001aa2: SWAP1
00001aa3: SWAP2
00001aa4: ADD
00001aa5: ADD
00001aa6: MSTORE
00001aa7: PUSH1 0x01
00001aa9: ADD
00001aaa: PUSH2 0x1a3b
00001aad: JUMP
00001aae: JUMPDEST
00001aaf: PUSH0
00001ab0: DUP1
00001ab1: MLOAD
00001ab2: PUSH1 0x20
00001ab4: PUSH2 0x5b5e
00001ab7: DUP4
00001ab8: CODECOPY
00001ab9: DUP2
00001aba: MLOAD
00001abb: SWAP2
00001abc: MSTORE
00001abd: PUSH2 0x1ac5
00001ac0: DUP2
00001ac1: PUSH2 0x2b82
00001ac4: JUMP
00001ac5: JUMPDEST
00001ac6: PUSH1 0x05
00001ac8: DUP5
00001ac9: SWAP1
00001aca: SSTORE
00001acb: PUSH1 0x04
00001acd: SLOAD
00001ace: DUP4
00001acf: EQ
00001ad0: PUSH2 0x1b1d
00001ad3: JUMPI
00001ad4: PUSH1 0x04
00001ad6: DUP1
00001ad7: SLOAD
00001ad8: PUSH1 0x40
00001ada: MLOAD
00001adb: PUSH4 0x15d3fa87
00001ae0: PUSH1 0xe0
00001ae2: SHL
00001ae3: DUP2
00001ae4: MSTORE
00001ae5: PUSH1 0x60
00001ae7: SWAP3
00001ae8: DUP2
00001ae9: ADD
00001aea: SWAP3
00001aeb: SWAP1
00001aec: SWAP3
00001aed: MSTORE
00001aee: PUSH1 0x0c
00001af0: PUSH1 0x64
00001af2: DUP4
00001af3: ADD
00001af4: MSTORE
00001af5: PUSH12 0x1d1bdd185b10db185a5b5959
00001b02: PUSH1 0xa2
00001b04: SHL
00001b05: PUSH1 0x84
00001b07: DUP4
00001b08: ADD
00001b09: MSTORE
00001b0a: PUSH1 0x24
00001b0c: DUP3
00001b0d: ADD
00001b0e: MSTORE
00001b0f: PUSH1 0x44
00001b11: DUP2
00001b12: ADD
00001b13: DUP5
00001b14: SWAP1
00001b15: MSTORE
00001b16: PUSH1 0xa4
00001b18: ADD
00001b19: PUSH2 0x14fa
00001b1c: JUMP
00001b1d: JUMPDEST
00001b1e: DUP2
00001b1f: PUSH1 0x06
00001b21: SLOAD
00001b22: EQ
00001b23: PUSH2 0x1b77
00001b26: JUMPI
00001b27: PUSH1 0x06
00001b29: SLOAD
00001b2a: PUSH1 0x40
00001b2c: MLOAD
00001b2d: PUSH4 0x15d3fa87
00001b32: PUSH1 0xe0
00001b34: SHL
00001b35: DUP2
00001b36: MSTORE
00001b37: PUSH1 0x60
00001b39: PUSH1 0x04
00001b3b: DUP3
00001b3c: ADD
00001b3d: MSTORE
00001b3e: PUSH1 0x13
00001b40: PUSH1 0x64
00001b42: DUP3
00001b43: ADD
00001b44: MSTORE
00001b45: PUSH19 0x3a37ba30b621b0b9393cabb4ba34323930bbb7
00001b59: PUSH1 0x69
00001b5b: SHL
00001b5c: PUSH1 0x84
00001b5e: DUP3
00001b5f: ADD
00001b60: MSTORE
00001b61: PUSH1 0x24
00001b63: DUP2
00001b64: ADD
00001b65: SWAP2
00001b66: SWAP1
00001b67: SWAP2
00001b68: MSTORE
00001b69: PUSH1 0x44
00001b6b: DUP2
00001b6c: ADD
00001b6d: DUP4
00001b6e: SWAP1
00001b6f: MSTORE
00001b70: PUSH1 0xa4
00001b72: ADD
00001b73: PUSH2 0x14fa
00001b76: JUMP
00001b77: JUMPDEST
00001b78: PUSH2 0x0e82
00001b7b: PUSH0
00001b7c: DUP1
00001b7d: MLOAD
00001b7e: PUSH1 0x20
00001b80: PUSH2 0x5b5e
00001b83: DUP4
00001b84: CODECOPY
00001b85: DUP2
00001b86: MLOAD
00001b87: SWAP2
00001b88: MSTORE
00001b89: CALLER
00001b8a: PUSH2 0x0ff8
00001b8d: JUMP
00001b8e: JUMPDEST
00001b8f: PUSH1 0x60
00001b91: PUSH0
00001b92: DUP4
00001b93: PUSH1 0x01
00001b95: PUSH1 0x01
00001b97: PUSH1 0x40
00001b99: SHL
00001b9a: SUB
00001b9b: DUP2
00001b9c: GT
00001b9d: ISZERO
00001b9e: PUSH2 0x1ba9
00001ba1: JUMPI
00001ba2: PUSH2 0x1ba9
00001ba5: PUSH2 0x46ae
00001ba8: JUMP
00001ba9: JUMPDEST
00001baa: PUSH1 0x40
00001bac: MLOAD
00001bad: SWAP1
00001bae: DUP1
00001baf: DUP3
00001bb0: MSTORE
00001bb1: DUP1
00001bb2: PUSH1 0x20
00001bb4: MUL
00001bb5: PUSH1 0x20
00001bb7: ADD
00001bb8: DUP3
00001bb9: ADD
00001bba: PUSH1 0x40
00001bbc: MSTORE
00001bbd: DUP1
00001bbe: ISZERO
00001bbf: PUSH2 0x1bd2
00001bc2: JUMPI
00001bc3: DUP2
00001bc4: PUSH1 0x20
00001bc6: ADD
00001bc7: PUSH1 0x20
00001bc9: DUP3
00001bca: MUL
00001bcb: DUP1
00001bcc: CALLDATASIZE
00001bcd: DUP4
00001bce: CALLDATACOPY
00001bcf: ADD
00001bd0: SWAP1
00001bd1: POP
00001bd2: JUMPDEST
00001bd3: POP
00001bd4: SWAP1
00001bd5: POP
00001bd6: PUSH0
00001bd7: JUMPDEST
00001bd8: DUP5
00001bd9: DUP2
00001bda: LT
00001bdb: ISZERO
00001bdc: PUSH2 0x1cae
00001bdf: JUMPI
00001be0: PUSH2 0x1c89
00001be3: DUP7
00001be4: DUP7
00001be5: DUP4
00001be6: DUP2
00001be7: DUP2
00001be8: LT
00001be9: PUSH2 0x1bf4
00001bec: JUMPI
00001bed: PUSH2 0x1bf4
00001bf0: PUSH2 0x52f4
00001bf3: JUMP
00001bf4: JUMPDEST
00001bf5: PUSH2 0x1c0a
00001bf8: SWAP3
00001bf9: PUSH1 0x20
00001bfb: PUSH1 0x80
00001bfd: SWAP1
00001bfe: SWAP3
00001bff: MUL
00001c00: ADD
00001c01: SWAP1
00001c02: DUP2
00001c03: ADD
00001c04: SWAP2
00001c05: POP
00001c06: PUSH2 0x5308
00001c09: JUMP
00001c0a: JUMPDEST
00001c0b: DUP8
00001c0c: DUP8
00001c0d: DUP5
00001c0e: DUP2
00001c0f: DUP2
00001c10: LT
00001c11: PUSH2 0x1c1c
00001c14: JUMPI
00001c15: PUSH2 0x1c1c
00001c18: PUSH2 0x52f4
00001c1b: JUMP
00001c1c: JUMPDEST
00001c1d: SWAP1
00001c1e: POP
00001c1f: PUSH1 0x80
00001c21: MUL
00001c22: ADD
00001c23: PUSH1 0x20
00001c25: ADD
00001c26: PUSH1 0x20
00001c28: DUP2
00001c29: ADD
00001c2a: SWAP1
00001c2b: PUSH2 0x1c34
00001c2e: SWAP2
00001c2f: SWAP1
00001c30: PUSH2 0x533b
00001c33: JUMP
00001c34: JUMPDEST
00001c35: PUSH1 0x01
00001c37: PUSH1 0x01
00001c39: PUSH1 0x40
00001c3b: SHL
00001c3c: SUB
00001c3d: AND
00001c3e: DUP9
00001c3f: DUP9
00001c40: DUP6
00001c41: DUP2
00001c42: DUP2
00001c43: LT
00001c44: PUSH2 0x1c4f
00001c47: JUMPI
00001c48: PUSH2 0x1c4f
00001c4b: PUSH2 0x52f4
00001c4e: JUMP
00001c4f: JUMPDEST
00001c50: SWAP1
00001c51: POP
00001c52: PUSH1 0x80
00001c54: MUL
00001c55: ADD
00001c56: PUSH1 0x40
00001c58: ADD
00001c59: PUSH1 0x20
00001c5b: DUP2
00001c5c: ADD
00001c5d: SWAP1
00001c5e: PUSH2 0x1c67
00001c61: SWAP2
00001c62: SWAP1
00001c63: PUSH2 0x4cd8
00001c66: JUMP
00001c67: JUMPDEST
00001c68: DUP10
00001c69: DUP10
00001c6a: DUP7
00001c6b: DUP2
00001c6c: DUP2
00001c6d: LT
00001c6e: PUSH2 0x1c79
00001c71: JUMPI
00001c72: PUSH2 0x1c79
00001c75: PUSH2 0x52f4
00001c78: JUMP
00001c79: JUMPDEST
00001c7a: SWAP1
00001c7b: POP
00001c7c: PUSH1 0x80
00001c7e: MUL
00001c7f: ADD
00001c80: PUSH1 0x60
00001c82: ADD
00001c83: CALLDATALOAD
00001c84: DUP9
00001c85: PUSH2 0x311b
00001c88: JUMP
00001c89: JUMPDEST
00001c8a: DUP3
00001c8b: DUP3
00001c8c: DUP2
00001c8d: MLOAD
00001c8e: DUP2
00001c8f: LT
00001c90: PUSH2 0x1c9b
00001c93: JUMPI
00001c94: PUSH2 0x1c9b
00001c97: PUSH2 0x52f4
00001c9a: JUMP
00001c9b: JUMPDEST
00001c9c: PUSH1 0x20
00001c9e: SWAP1
00001c9f: DUP2
00001ca0: MUL
00001ca1: SWAP2
00001ca2: SWAP1
00001ca3: SWAP2
00001ca4: ADD
00001ca5: ADD
00001ca6: MSTORE
00001ca7: PUSH1 0x01
00001ca9: ADD
00001caa: PUSH2 0x1bd7
00001cad: JUMP
00001cae: JUMPDEST
00001caf: POP
00001cb0: SWAP1
00001cb1: POP
00001cb2: JUMPDEST
00001cb3: SWAP4
00001cb4: SWAP3
00001cb5: POP
00001cb6: POP
00001cb7: POP
00001cb8: JUMP
00001cb9: JUMPDEST
00001cba: PUSH0
00001cbb: DUP1
00001cbc: MLOAD
00001cbd: PUSH1 0x20
00001cbf: PUSH2 0x5abe
00001cc2: DUP4
00001cc3: CODECOPY
00001cc4: DUP2
00001cc5: MLOAD
00001cc6: SWAP2
00001cc7: MSTORE
00001cc8: PUSH2 0x1cd0
00001ccb: DUP2
00001ccc: PUSH2 0x2b82
00001ccf: JUMP
00001cd0: JUMPDEST
00001cd1: PUSH2 0x07d0
00001cd4: DUP3
00001cd5: PUSH2 0xffff
00001cd8: AND
00001cd9: GT
00001cda: ISZERO
00001cdb: PUSH2 0x1d3d
00001cde: JUMPI
00001cdf: PUSH1 0x40
00001ce1: MLOAD
00001ce2: PUSH4 0x01f6ffb9
00001ce7: PUSH1 0xe3
00001ce9: SHL
00001cea: DUP2
00001ceb: MSTORE
00001cec: PUSH1 0x20
00001cee: PUSH1 0x04
00001cf0: DUP3
00001cf1: ADD
00001cf2: MSTORE
00001cf3: PUSH1 0x2d
00001cf5: PUSH1 0x24
00001cf7: DUP3
00001cf8: ADD
00001cf9: MSTORE
00001cfa: PUSH32 0x506c6174666f726d206361727279204250532063616e6e6f7420626520677265
00001d1b: PUSH1 0x44
00001d1d: DUP3
00001d1e: ADD
00001d1f: MSTORE
00001d20: PUSH13 0x61746572207468616e20323025
00001d2e: PUSH1 0x98
00001d30: SHL
00001d31: PUSH1 0x64
00001d33: DUP3
00001d34: ADD
00001d35: MSTORE
00001d36: PUSH1 0x84
00001d38: ADD
00001d39: PUSH2 0x14fa
00001d3c: JUMP
00001d3d: JUMPDEST
00001d3e: PUSH1 0x07
00001d40: SLOAD
00001d41: PUSH1 0x03
00001d43: SLOAD
00001d44: DUP4
00001d45: SWAP2
00001d46: PUSH2 0x1d5e
00001d49: SWAP2
00001d4a: PUSH2 0xffff
00001d4d: SWAP2
00001d4e: DUP3
00001d4f: AND
00001d50: SWAP2
00001d51: PUSH1 0x01
00001d53: PUSH1 0xc0
00001d55: SHL
00001d56: SWAP1
00001d57: SWAP2
00001d58: DIV
00001d59: AND
00001d5a: PUSH2 0x5520
00001d5d: JUMP
00001d5e: JUMPDEST
00001d5f: PUSH2 0x1d68
00001d62: SWAP2
00001d63: SWAP1
00001d64: PUSH2 0x553b
00001d67: JUMP
00001d68: JUMPDEST
00001d69: PUSH1 0x03
00001d6b: DUP1
00001d6c: SLOAD
00001d6d: PUSH2 0xffff
00001d70: PUSH1 0xc0
00001d72: SHL
00001d73: NOT
00001d74: AND
00001d75: PUSH1 0x01
00001d77: PUSH1 0xc0
00001d79: SHL
00001d7a: PUSH2 0xffff
00001d7d: SWAP4
00001d7e: DUP5
00001d7f: AND
00001d80: MUL
00001d81: OR
00001d82: SWAP1
00001d83: SSTORE
00001d84: PUSH1 0x07
00001d86: DUP1
00001d87: SLOAD
00001d88: PUSH2 0xffff
00001d8b: NOT
00001d8c: AND
00001d8d: SWAP4
00001d8e: SWAP1
00001d8f: SWAP2
00001d90: AND
00001d91: SWAP3
00001d92: SWAP1
00001d93: SWAP3
00001d94: OR
00001d95: SWAP1
00001d96: SWAP2
00001d97: SSTORE
00001d98: POP
00001d99: JUMP
00001d9a: JUMPDEST
00001d9b: PUSH0
00001d9c: DUP2
00001d9d: DUP2
00001d9e: MSTORE
00001d9f: PUSH0
00001da0: DUP1
00001da1: MLOAD
00001da2: PUSH1 0x20
00001da4: PUSH2 0x5a7e
00001da7: DUP4
00001da8: CODECOPY
00001da9: DUP2
00001daa: MLOAD
00001dab: SWAP2
00001dac: MSTORE
00001dad: PUSH1 0x20
00001daf: DUP2
00001db0: SWAP1
00001db1: MSTORE
00001db2: PUSH1 0x40
00001db4: DUP3
00001db5: KECCAK256
00001db6: PUSH2 0x1cb2
00001db9: SWAP1
00001dba: PUSH2 0x31b4
00001dbd: JUMP
00001dbe: JUMPDEST
00001dbf: PUSH2 0x1dc7
00001dc2: DUP3
00001dc3: PUSH2 0x0d7c
00001dc6: JUMP
00001dc7: JUMPDEST
00001dc8: PUSH2 0x1dd0
00001dcb: DUP2
00001dcc: PUSH2 0x2b82
00001dcf: JUMP
00001dd0: JUMPDEST
00001dd1: PUSH2 0x0e82
00001dd4: DUP4
00001dd5: DUP4
00001dd6: PUSH2 0x2d6c
00001dd9: JUMP
00001dda: JUMPDEST
00001ddb: PUSH0
00001ddc: DUP1
00001ddd: MLOAD
00001dde: PUSH1 0x20
00001de0: PUSH2 0x5b5e
00001de3: DUP4
00001de4: CODECOPY
00001de5: DUP2
00001de6: MLOAD
00001de7: SWAP2
00001de8: MSTORE
00001de9: PUSH2 0x1df1
00001dec: DUP2
00001ded: PUSH2 0x2b82
00001df0: JUMP
00001df1: JUMPDEST
00001df2: PUSH1 0x06
00001df4: SLOAD
00001df5: PUSH0
00001df6: JUMPDEST
00001df7: DUP4
00001df8: DUP2
00001df9: LT
00001dfa: ISZERO
00001dfb: PUSH2 0x1edb
00001dfe: JUMPI
00001dff: PUSH0
00001e00: DUP6
00001e01: DUP6
00001e02: DUP4
00001e03: DUP2
00001e04: DUP2
00001e05: LT
00001e06: PUSH2 0x1e11
00001e09: JUMPI
00001e0a: PUSH2 0x1e11
00001e0d: PUSH2 0x52f4
00001e10: JUMP
00001e11: JUMPDEST
00001e12: PUSH2 0x1e27
00001e15: SWAP3
00001e16: PUSH1 0x20
00001e18: PUSH1 0x40
00001e1a: SWAP1
00001e1b: SWAP3
00001e1c: MUL
00001e1d: ADD
00001e1e: SWAP1
00001e1f: DUP2
00001e20: ADD
00001e21: SWAP2
00001e22: POP
00001e23: PUSH2 0x5308
00001e26: JUMP
00001e27: JUMPDEST
00001e28: PUSH1 0x01
00001e2a: PUSH1 0x01
00001e2c: PUSH1 0x80
00001e2e: SHL
00001e2f: SUB
00001e30: NOT
00001e31: DUP2
00001e32: AND
00001e33: PUSH0
00001e34: SWAP1
00001e35: DUP2
00001e36: MSTORE
00001e37: PUSH1 0x09
00001e39: PUSH1 0x20
00001e3b: MSTORE
00001e3c: PUSH1 0x40
00001e3e: SWAP1
00001e3f: KECCAK256
00001e40: SLOAD
00001e41: SWAP1
00001e42: SWAP2
00001e43: POP
00001e44: ISZERO
00001e45: PUSH2 0x1e6d
00001e48: JUMPI
00001e49: PUSH1 0x40
00001e4b: MLOAD
00001e4c: PUSH4 0x15adf339
00001e51: PUSH1 0xe2
00001e53: SHL
00001e54: DUP2
00001e55: MSTORE
00001e56: PUSH1 0x01
00001e58: PUSH1 0x01
00001e5a: PUSH1 0x80
00001e5c: SHL
00001e5d: SUB
00001e5e: NOT
00001e5f: DUP3
00001e60: AND
00001e61: PUSH1 0x04
00001e63: DUP3
00001e64: ADD
00001e65: MSTORE
00001e66: PUSH1 0x24
00001e68: ADD
00001e69: PUSH2 0x14fa
00001e6c: JUMP
00001e6d: JUMPDEST
00001e6e: DUP6
00001e6f: DUP6
00001e70: DUP4
00001e71: DUP2
00001e72: DUP2
00001e73: LT
00001e74: PUSH2 0x1e7f
00001e77: JUMPI
00001e78: PUSH2 0x1e7f
00001e7b: PUSH2 0x52f4
00001e7e: JUMP
00001e7f: JUMPDEST
00001e80: PUSH1 0x01
00001e82: PUSH1 0x01
00001e84: PUSH1 0x80
00001e86: SHL
00001e87: SUB
00001e88: NOT
00001e89: DUP5
00001e8a: AND
00001e8b: PUSH0
00001e8c: SWAP1
00001e8d: DUP2
00001e8e: MSTORE
00001e8f: PUSH1 0x09
00001e91: PUSH1 0x20
00001e93: SWAP1
00001e94: DUP2
00001e95: MSTORE
00001e96: PUSH1 0x40
00001e98: SWAP2
00001e99: DUP3
00001e9a: SWAP1
00001e9b: KECCAK256
00001e9c: SWAP2
00001e9d: SWAP1
00001e9e: SWAP3
00001e9f: MUL
00001ea0: SWAP4
00001ea1: SWAP1
00001ea2: SWAP4
00001ea3: ADD
00001ea4: ADD
00001ea5: CALLDATALOAD
00001ea6: SWAP1
00001ea7: SWAP2
00001ea8: SSTORE
00001ea9: POP
00001eaa: DUP6
00001eab: DUP6
00001eac: DUP4
00001ead: DUP2
00001eae: DUP2
00001eaf: LT
00001eb0: PUSH2 0x1ebb
00001eb3: JUMPI
00001eb4: PUSH2 0x1ebb
00001eb7: PUSH2 0x52f4
00001eba: JUMP
00001ebb: JUMPDEST
00001ebc: SWAP1
00001ebd: POP
00001ebe: PUSH1 0x40
00001ec0: MUL
00001ec1: ADD
00001ec2: PUSH1 0x20
00001ec4: ADD
00001ec5: CALLDATALOAD
00001ec6: DUP4
00001ec7: PUSH2 0x1ed0
00001eca: SWAP2
00001ecb: SWAP1
00001ecc: PUSH2 0x54d7
00001ecf: JUMP
00001ed0: JUMPDEST
00001ed1: SWAP3
00001ed2: POP
00001ed3: POP
00001ed4: PUSH1 0x01
00001ed6: ADD
00001ed7: PUSH2 0x1df6
00001eda: JUMP
00001edb: JUMPDEST
00001edc: POP
00001edd: PUSH1 0x06
00001edf: SSTORE
00001ee0: POP
00001ee1: POP
00001ee2: POP
00001ee3: JUMP
00001ee4: JUMPDEST
00001ee5: PUSH0
00001ee6: PUSH2 0x196b
00001ee9: PUSH2 0x31bd
00001eec: JUMP
00001eed: JUMPDEST
00001eee: PUSH1 0x02
00001ef0: SLOAD
00001ef1: PUSH1 0x01
00001ef3: PUSH1 0xa0
00001ef5: SHL
00001ef6: SWAP1
00001ef7: DIV
00001ef8: PUSH1 0xff
00001efa: AND
00001efb: DUP1
00001efc: PUSH2 0x1f18
00001eff: JUMPI
00001f00: PUSH1 0x40
00001f02: MLOAD
00001f03: PUSH4 0x3ac4266d
00001f08: PUSH1 0xe1
00001f0a: SHL
00001f0b: DUP2
00001f0c: MSTORE
00001f0d: PUSH1 0x04
00001f0f: ADD
00001f10: PUSH1 0x40
00001f12: MLOAD
00001f13: DUP1
00001f14: SWAP2
00001f15: SUB
00001f16: SWAP1
00001f17: REVERT
00001f18: JUMPDEST
00001f19: PUSH1 0x03
00001f1b: SLOAD
00001f1c: PUSH1 0x80
00001f1e: SHL
00001f1f: PUSH1 0x01
00001f21: PUSH1 0x01
00001f23: PUSH1 0x80
00001f25: SHL
00001f26: SUB
00001f27: NOT
00001f28: AND
00001f29: PUSH2 0x1f35
00001f2c: PUSH1 0x20
00001f2e: DUP9
00001f2f: ADD
00001f30: DUP9
00001f31: PUSH2 0x5308
00001f34: JUMP
00001f35: JUMPDEST
00001f36: PUSH1 0x01
00001f38: PUSH1 0x01
00001f3a: PUSH1 0x80
00001f3c: SHL
00001f3d: SUB
00001f3e: NOT
00001f3f: AND
00001f40: EQ
00001f41: PUSH2 0x1f88
00001f44: JUMPI
00001f45: PUSH2 0x1f51
00001f48: PUSH1 0x20
00001f4a: DUP8
00001f4b: ADD
00001f4c: DUP8
00001f4d: PUSH2 0x5308
00001f50: JUMP
00001f51: JUMPDEST
00001f52: PUSH1 0x03
00001f54: SLOAD
00001f55: PUSH1 0x40
00001f57: MLOAD
00001f58: PUSH4 0x08d9a7fb
00001f5d: PUSH1 0xe4
00001f5f: SHL
00001f60: DUP2
00001f61: MSTORE
00001f62: PUSH2 0x14fa
00001f65: SWAP3
00001f66: SWAP2
00001f67: PUSH1 0x80
00001f69: SHL
00001f6a: SWAP1
00001f6b: PUSH1 0x04
00001f6d: ADD
00001f6e: PUSH1 0x01
00001f70: PUSH1 0x01
00001f72: PUSH1 0x80
00001f74: SHL
00001f75: SUB
00001f76: NOT
00001f77: SWAP3
00001f78: DUP4
00001f79: AND
00001f7a: DUP2
00001f7b: MSTORE
00001f7c: SWAP2
00001f7d: AND
00001f7e: PUSH1 0x20
00001f80: DUP3
00001f81: ADD
00001f82: MSTORE
00001f83: PUSH1 0x40
00001f85: ADD
00001f86: SWAP1
00001f87: JUMP
00001f88: JUMPDEST
00001f89: DUP6
00001f8a: PUSH1 0x80
00001f8c: ADD
00001f8d: CALLDATALOAD
00001f8e: TIMESTAMP
00001f8f: LT
00001f90: PUSH2 0x1fb2
00001f93: JUMPI
00001f94: PUSH1 0x40
00001f96: MLOAD
00001f97: PUSH4 0x0f5f3b23
00001f9c: PUSH1 0xe4
00001f9e: SHL
00001f9f: DUP2
00001fa0: MSTORE
00001fa1: PUSH1 0x80
00001fa3: DUP8
00001fa4: ADD
00001fa5: CALLDATALOAD
00001fa6: PUSH1 0x04
00001fa8: DUP3
00001fa9: ADD
00001faa: MSTORE
00001fab: PUSH1 0x24
00001fad: ADD
00001fae: PUSH2 0x14fa
00001fb1: JUMP
00001fb2: JUMPDEST
00001fb3: PUSH0
00001fb4: PUSH1 0x0b
00001fb6: DUP2
00001fb7: PUSH2 0x1fc6
00001fba: PUSH1 0x40
00001fbc: DUP11
00001fbd: ADD
00001fbe: PUSH1 0x20
00001fc0: DUP12
00001fc1: ADD
00001fc2: PUSH2 0x5308
00001fc5: JUMP
00001fc6: JUMPDEST
00001fc7: PUSH1 0x01
00001fc9: PUSH1 0x01
00001fcb: PUSH1 0x80
00001fcd: SHL
00001fce: SUB
00001fcf: NOT
00001fd0: AND
00001fd1: DUP2
00001fd2: MSTORE
00001fd3: PUSH1 0x20
00001fd5: DUP1
00001fd6: DUP3
00001fd7: ADD
00001fd8: SWAP3
00001fd9: SWAP1
00001fda: SWAP3
00001fdb: MSTORE
00001fdc: PUSH1 0x40
00001fde: SWAP1
00001fdf: DUP2
00001fe0: ADD
00001fe1: PUSH0
00001fe2: KECCAK256
00001fe3: DUP2
00001fe4: MLOAD
00001fe5: DUP1
00001fe6: DUP4
00001fe7: ADD
00001fe8: SWAP1
00001fe9: SWAP3
00001fea: MSTORE
00001feb: SLOAD
00001fec: PUSH1 0x01
00001fee: PUSH1 0x01
00001ff0: PUSH1 0xa0
00001ff2: SHL
00001ff3: SUB
00001ff4: DUP2
00001ff5: AND
00001ff6: DUP1
00001ff7: DUP4
00001ff8: MSTORE
00001ff9: PUSH1 0x01
00001ffb: PUSH1 0xa0
00001ffd: SHL
00001ffe: SWAP1
00001fff: SWAP2
00002000: DIV
00002001: PUSH2 0xffff
00002004: AND
00002005: SWAP3
00002006: DUP3
00002007: ADD
00002008: SWAP3
00002009: SWAP1
0000200a: SWAP3
0000200b: MSTORE
0000200c: SWAP2
0000200d: POP
0000200e: PUSH2 0x202a
00002011: JUMPI
00002012: PUSH1 0x40
00002014: MLOAD
00002015: PUSH4 0x7d469caf
0000201a: PUSH1 0xe1
0000201c: SHL
0000201d: DUP2
0000201e: MSTORE
0000201f: PUSH1 0x04
00002021: ADD
00002022: PUSH1 0x40
00002024: MLOAD
00002025: DUP1
00002026: SWAP2
00002027: SUB
00002028: SWAP1
00002029: REVERT
0000202a: JUMPDEST
0000202b: PUSH0
0000202c: PUSH2 0x204a
0000202f: PUSH2 0x203d
00002032: CALLDATASIZE
00002033: DUP11
00002034: SWAP1
00002035: SUB
00002036: DUP11
00002037: ADD
00002038: DUP11
00002039: PUSH2 0x5556
0000203c: JUMP
0000203d: JUMPDEST
0000203e: PUSH2 0x2045
00002041: PUSH2 0x31bd
00002044: JUMP
00002045: JUMPDEST
00002046: PUSH2 0x31c6
00002049: JUMP
0000204a: JUMPDEST
0000204b: PUSH1 0x02
0000204d: SLOAD
0000204e: SWAP1
0000204f: SWAP2
00002050: POP
00002051: PUSH1 0x01
00002053: PUSH1 0xa8
00002055: SHL
00002056: SWAP1
00002057: DIV
00002058: PUSH1 0xff
0000205a: AND
0000205b: ISZERO
0000205c: DUP1
0000205d: ISZERO
0000205e: PUSH2 0x20a7
00002061: JUMPI
00002062: POP
00002063: PUSH2 0x20a5
00002066: DUP3
00002067: PUSH0
00002068: ADD
00002069: MLOAD
0000206a: DUP3
0000206b: DUP10
0000206c: DUP10
0000206d: DUP1
0000206e: DUP1
0000206f: PUSH1 0x1f
00002071: ADD
00002072: PUSH1 0x20
00002074: DUP1
00002075: SWAP2
00002076: DIV
00002077: MUL
00002078: PUSH1 0x20
0000207a: ADD
0000207b: PUSH1 0x40
0000207d: MLOAD
0000207e: SWAP1
0000207f: DUP2
00002080: ADD
00002081: PUSH1 0x40
00002083: MSTORE
00002084: DUP1
00002085: SWAP4
00002086: SWAP3
00002087: SWAP2
00002088: SWAP1
00002089: DUP2
0000208a: DUP2
0000208b: MSTORE
0000208c: PUSH1 0x20
0000208e: ADD
0000208f: DUP4
00002090: DUP4
00002091: DUP1
00002092: DUP3
00002093: DUP5
00002094: CALLDATACOPY
00002095: PUSH0
00002096: SWAP3
00002097: ADD
00002098: SWAP2
00002099: SWAP1
0000209a: SWAP2
0000209b: MSTORE
0000209c: POP
0000209d: PUSH2 0x328b
000020a0: SWAP3
000020a1: POP
000020a2: POP
000020a3: POP
000020a4: JUMP
000020a5: JUMPDEST
000020a6: ISZERO
000020a7: JUMPDEST
000020a8: ISZERO
000020a9: PUSH2 0x211e
000020ac: JUMPI
000020ad: PUSH0
000020ae: PUSH2 0x20ec
000020b1: DUP3
000020b2: DUP10
000020b3: DUP10
000020b4: DUP1
000020b5: DUP1
000020b6: PUSH1 0x1f
000020b8: ADD
000020b9: PUSH1 0x20
000020bb: DUP1
000020bc: SWAP2
000020bd: DIV
000020be: MUL
000020bf: PUSH1 0x20
000020c1: ADD
000020c2: PUSH1 0x40
000020c4: MLOAD
000020c5: SWAP1
000020c6: DUP2
000020c7: ADD
000020c8: PUSH1 0x40
000020ca: MSTORE
000020cb: DUP1
000020cc: SWAP4
000020cd: SWAP3
000020ce: SWAP2
000020cf: SWAP1
000020d0: DUP2
000020d1: DUP2
000020d2: MSTORE
000020d3: PUSH1 0x20
000020d5: ADD
000020d6: DUP4
000020d7: DUP4
000020d8: DUP1
000020d9: DUP3
000020da: DUP5
000020db: CALLDATACOPY
000020dc: PUSH0
000020dd: SWAP3
000020de: ADD
000020df: SWAP2
000020e0: SWAP1
000020e1: SWAP2
000020e2: MSTORE
000020e3: POP
000020e4: PUSH2 0x32ea
000020e7: SWAP3
000020e8: POP
000020e9: POP
000020ea: POP
000020eb: JUMP
000020ec: JUMPDEST
000020ed: DUP4
000020ee: MLOAD
000020ef: PUSH1 0x40
000020f1: MLOAD
000020f2: PUSH4 0x1fb7a3a3
000020f7: PUSH1 0xe0
000020f9: SHL
000020fa: DUP2
000020fb: MSTORE
000020fc: PUSH1 0x01
000020fe: PUSH1 0x01
00002100: PUSH1 0xa0
00002102: SHL
00002103: SUB
00002104: DUP1
00002105: DUP5
00002106: AND
00002107: PUSH1 0x04
00002109: DUP4
0000210a: ADD
0000210b: MSTORE
0000210c: SWAP1
0000210d: SWAP2
0000210e: AND
0000210f: PUSH1 0x24
00002111: DUP3
00002112: ADD
00002113: MSTORE
00002114: SWAP1
00002115: SWAP2
00002116: POP
00002117: PUSH1 0x44
00002119: ADD
0000211a: PUSH2 0x14fa
0000211d: JUMP
0000211e: JUMPDEST
0000211f: PUSH0
00002120: PUSH2 0x215e
00002123: DUP3
00002124: DUP8
00002125: DUP8
00002126: DUP1
00002127: DUP1
00002128: PUSH1 0x1f
0000212a: ADD
0000212b: PUSH1 0x20
0000212d: DUP1
0000212e: SWAP2
0000212f: DIV
00002130: MUL
00002131: PUSH1 0x20
00002133: ADD
00002134: PUSH1 0x40
00002136: MLOAD
00002137: SWAP1
00002138: DUP2
00002139: ADD
0000213a: PUSH1 0x40
0000213c: MSTORE
0000213d: DUP1
0000213e: SWAP4
0000213f: SWAP3
00002140: SWAP2
00002141: SWAP1
00002142: DUP2
00002143: DUP2
00002144: MSTORE
00002145: PUSH1 0x20
00002147: ADD
00002148: DUP4
00002149: DUP4
0000214a: DUP1
0000214b: DUP3
0000214c: DUP5
0000214d: CALLDATACOPY
0000214e: PUSH0
0000214f: SWAP3
00002150: ADD
00002151: SWAP2
00002152: SWAP1
00002153: SWAP2
00002154: MSTORE
00002155: POP
00002156: PUSH2 0x32ea
00002159: SWAP3
0000215a: POP
0000215b: POP
0000215c: POP
0000215d: JUMP
0000215e: JUMPDEST
0000215f: SWAP1
00002160: POP
00002161: PUSH2 0x2177
00002164: PUSH0
00002165: DUP1
00002166: MLOAD
00002167: PUSH1 0x20
00002169: PUSH2 0x5afe
0000216c: DUP4
0000216d: CODECOPY
0000216e: DUP2
0000216f: MLOAD
00002170: SWAP2
00002171: MSTORE
00002172: DUP3
00002173: PUSH2 0x1921
00002176: JUMP
00002177: JUMPDEST
00002178: PUSH2 0x219f
0000217b: JUMPI
0000217c: PUSH1 0x40
0000217e: MLOAD
0000217f: PUSH4 0x01120d51
00002184: PUSH1 0xe3
00002186: SHL
00002187: DUP2
00002188: MSTORE
00002189: PUSH1 0x01
0000218b: PUSH1 0x01
0000218d: PUSH1 0xa0
0000218f: SHL
00002190: SUB
00002191: DUP3
00002192: AND
00002193: PUSH1 0x04
00002195: DUP3
00002196: ADD
00002197: MSTORE
00002198: PUSH1 0x24
0000219a: ADD
0000219b: PUSH2 0x14fa
0000219e: JUMP
0000219f: JUMPDEST
000021a0: POP
000021a1: PUSH0
000021a2: SWAP1
000021a3: POP
000021a4: PUSH2 0x21c0
000021a7: PUSH2 0x21b6
000021aa: PUSH1 0x40
000021ac: DUP11
000021ad: ADD
000021ae: PUSH1 0x20
000021b0: DUP12
000021b1: ADD
000021b2: PUSH2 0x5308
000021b5: JUMP
000021b6: JUMPDEST
000021b7: DUP4
000021b8: PUSH1 0x20
000021ba: ADD
000021bb: MLOAD
000021bc: PUSH2 0x2f7e
000021bf: JUMP
000021c0: JUMPDEST
000021c1: SWAP1
000021c2: POP
000021c3: DUP1
000021c4: DUP9
000021c5: PUSH1 0x60
000021c7: ADD
000021c8: CALLDATALOAD
000021c9: GT
000021ca: ISZERO
000021cb: PUSH2 0x21f4
000021ce: JUMPI
000021cf: PUSH1 0x40
000021d1: MLOAD
000021d2: PUSH4 0x0f4da979
000021d7: PUSH1 0xe4
000021d9: SHL
000021da: DUP2
000021db: MSTORE
000021dc: PUSH1 0x60
000021de: DUP10
000021df: ADD
000021e0: CALLDATALOAD
000021e1: PUSH1 0x04
000021e3: DUP3
000021e4: ADD
000021e5: MSTORE
000021e6: PUSH1 0x24
000021e8: DUP2
000021e9: ADD
000021ea: DUP3
000021eb: SWAP1
000021ec: MSTORE
000021ed: PUSH1 0x44
000021ef: ADD
000021f0: PUSH2 0x14fa
000021f3: JUMP
000021f4: JUMPDEST
000021f5: POP
000021f6: PUSH1 0x60
000021f8: DUP8
000021f9: ADD
000021fa: CALLDATALOAD
000021fb: PUSH1 0x09
000021fd: PUSH0
000021fe: PUSH2 0x220d
00002201: PUSH1 0x40
00002203: DUP12
00002204: ADD
00002205: PUSH1 0x20
00002207: DUP13
00002208: ADD
00002209: PUSH2 0x5308
0000220c: JUMP
0000220d: JUMPDEST
0000220e: PUSH1 0x01
00002210: PUSH1 0x01
00002212: PUSH1 0x80
00002214: SHL
00002215: SUB
00002216: NOT
00002217: AND
00002218: PUSH1 0x01
0000221a: PUSH1 0x01
0000221c: PUSH1 0x80
0000221e: SHL
0000221f: SUB
00002220: NOT
00002221: AND
00002222: DUP2
00002223: MSTORE
00002224: PUSH1 0x20
00002226: ADD
00002227: SWAP1
00002228: DUP2
00002229: MSTORE
0000222a: PUSH1 0x20
0000222c: ADD
0000222d: PUSH0
0000222e: KECCAK256
0000222f: PUSH0
00002230: DUP3
00002231: DUP3
00002232: SLOAD
00002233: PUSH2 0x223c
00002236: SWAP2
00002237: SWAP1
00002238: PUSH2 0x54d7
0000223b: JUMP
0000223c: JUMPDEST
0000223d: SWAP3
0000223e: POP
0000223f: POP
00002240: DUP2
00002241: SWAP1
00002242: SSTORE
00002243: POP
00002244: DUP7
00002245: PUSH1 0x60
00002247: ADD
00002248: CALLDATALOAD
00002249: PUSH1 0x06
0000224b: PUSH0
0000224c: DUP3
0000224d: DUP3
0000224e: SLOAD
0000224f: PUSH2 0x2258
00002252: SWAP2
00002253: SWAP1
00002254: PUSH2 0x54d7
00002257: JUMP
00002258: JUMPDEST
00002259: SWAP1
0000225a: SWAP2
0000225b: SSTORE
0000225c: POP
0000225d: PUSH2 0x226e
00002260: SWAP1
00002261: POP
00002262: PUSH1 0x60
00002264: DUP9
00002265: ADD
00002266: PUSH1 0x40
00002268: DUP10
00002269: ADD
0000226a: PUSH2 0x4e39
0000226d: JUMP
0000226e: JUMPDEST
0000226f: PUSH1 0x01
00002271: PUSH1 0x01
00002273: PUSH1 0xa0
00002275: SHL
00002276: SUB
00002277: AND
00002278: PUSH2 0x2287
0000227b: PUSH1 0x40
0000227d: DUP10
0000227e: ADD
0000227f: PUSH1 0x20
00002281: DUP11
00002282: ADD
00002283: PUSH2 0x5308
00002286: JUMP
00002287: JUMPDEST
00002288: PUSH1 0x01
0000228a: PUSH1 0x01
0000228c: PUSH1 0x80
0000228e: SHL
0000228f: SUB
00002290: NOT
00002291: AND
00002292: PUSH2 0x229e
00002295: PUSH1 0x20
00002297: DUP11
00002298: ADD
00002299: DUP11
0000229a: PUSH2 0x5308
0000229d: JUMP
0000229e: JUMPDEST
0000229f: PUSH1 0x01
000022a1: PUSH1 0x01
000022a3: PUSH1 0x80
000022a5: SHL
000022a6: SUB
000022a7: NOT
000022a8: AND
000022a9: PUSH32 0x7ed4454676b40d92244b47fc7a6ef3aab0808cbf85d84fc65676a040343d4823
000022ca: DUP11
000022cb: PUSH1 0x60
000022cd: ADD
000022ce: CALLDATALOAD
000022cf: PUSH1 0x40
000022d1: MLOAD
000022d2: PUSH2 0x22dd
000022d5: SWAP2
000022d6: DUP2
000022d7: MSTORE
000022d8: PUSH1 0x20
000022da: ADD
000022db: SWAP1
000022dc: JUMP
000022dd: JUMPDEST
000022de: PUSH1 0x40
000022e0: MLOAD
000022e1: DUP1
000022e2: SWAP2
000022e3: SUB
000022e4: SWAP1
000022e5: LOG4
000022e6: PUSH2 0x230f
000022e9: PUSH2 0x22f8
000022ec: PUSH1 0x60
000022ee: DUP10
000022ef: ADD
000022f0: PUSH1 0x40
000022f2: DUP11
000022f3: ADD
000022f4: PUSH2 0x4e39
000022f7: JUMP
000022f8: JUMPDEST
000022f9: PUSH1 0x02
000022fb: SLOAD
000022fc: PUSH1 0x01
000022fe: PUSH1 0x01
00002300: PUSH1 0xa0
00002302: SHL
00002303: SUB
00002304: AND
00002305: SWAP1
00002306: PUSH1 0x60
00002308: DUP11
00002309: ADD
0000230a: CALLDATALOAD
0000230b: PUSH2 0x2fc0
0000230e: JUMP
0000230f: JUMPDEST
00002310: POP
00002311: POP
00002312: POP
00002313: POP
00002314: POP
00002315: POP
00002316: POP
00002317: JUMP
00002318: JUMPDEST
00002319: PUSH1 0x02
0000231b: SLOAD
0000231c: PUSH1 0x01
0000231e: PUSH1 0xa0
00002320: SHL
00002321: SWAP1
00002322: DIV
00002323: PUSH1 0xff
00002325: AND
00002326: DUP1
00002327: PUSH2 0x2343
0000232a: JUMPI
0000232b: PUSH1 0x40
0000232d: MLOAD
0000232e: PUSH4 0x3ac4266d
00002333: PUSH1 0xe1
00002335: SHL
00002336: DUP2
00002337: MSTORE
00002338: PUSH1 0x04
0000233a: ADD
0000233b: PUSH1 0x40
0000233d: MLOAD
0000233e: DUP1
0000233f: SWAP2
00002340: SUB
00002341: SWAP1
00002342: REVERT
00002343: JUMPDEST
00002344: DUP2
00002345: ISZERO
00002346: PUSH2 0x2351
00002349: JUMPI
0000234a: PUSH2 0x2351
0000234d: PUSH2 0x1030
00002350: JUMP
00002351: JUMPDEST
00002352: PUSH2 0x2361
00002355: DUP11
00002356: DUP11
00002357: DUP11
00002358: DUP11
00002359: DUP11
0000235a: DUP11
0000235b: DUP11
0000235c: DUP11
0000235d: PUSH2 0x3312
00002360: JUMP
00002361: JUMPDEST
00002362: POP
00002363: POP
00002364: POP
00002365: POP
00002366: POP
00002367: POP
00002368: POP
00002369: POP
0000236a: POP
0000236b: POP
0000236c: JUMP
0000236d: JUMPDEST
0000236e: PUSH0
0000236f: PUSH1 0x01
00002371: PUSH1 0x01
00002373: PUSH1 0xe0
00002375: SHL
00002376: SUB
00002377: NOT
00002378: DUP3
00002379: AND
0000237a: PUSH4 0x7965db0b
0000237f: PUSH1 0xe0
00002381: SHL
00002382: EQ
00002383: DUP1
00002384: PUSH2 0x0998
00002387: JUMPI
00002388: POP
00002389: PUSH4 0x01ffc9a7
0000238e: PUSH1 0xe0
00002390: SHL
00002391: PUSH1 0x01
00002393: PUSH1 0x01
00002395: PUSH1 0xe0
00002397: SHL
00002398: SUB
00002399: NOT
0000239a: DUP4
0000239b: AND
0000239c: EQ
0000239d: PUSH2 0x0998
000023a0: JUMP
000023a1: JUMPDEST
000023a2: PUSH2 0x1080
000023a5: PUSH2 0x37d6
000023a8: JUMP
000023a9: JUMPDEST
000023aa: PUSH2 0x23b1
000023ad: PUSH2 0x37d6
000023b0: JUMP
000023b1: JUMPDEST
000023b2: PUSH2 0x0f1a
000023b5: DUP3
000023b6: DUP3
000023b7: PUSH2 0x381f
000023ba: JUMP
000023bb: JUMPDEST
000023bc: PUSH0
000023bd: DUP1
000023be: MLOAD
000023bf: PUSH1 0x20
000023c1: PUSH2 0x5b1e
000023c4: DUP4
000023c5: CODECOPY
000023c6: DUP2
000023c7: MLOAD
000023c8: SWAP2
000023c9: MSTORE
000023ca: PUSH0
000023cb: PUSH2 0x23d3
000023ce: DUP5
000023cf: PUSH2 0x0d7c
000023d2: JUMP
000023d3: JUMPDEST
000023d4: PUSH0
000023d5: DUP6
000023d6: DUP2
000023d7: MSTORE
000023d8: PUSH1 0x20
000023da: DUP5
000023db: SWAP1
000023dc: MSTORE
000023dd: PUSH1 0x40
000023df: DUP1
000023e0: DUP3
000023e1: KECCAK256
000023e2: PUSH1 0x01
000023e4: ADD
000023e5: DUP7
000023e6: SWAP1
000023e7: SSTORE
000023e8: MLOAD
000023e9: SWAP2
000023ea: SWAP3
000023eb: POP
000023ec: DUP5
000023ed: SWAP2
000023ee: DUP4
000023ef: SWAP2
000023f0: DUP8
000023f1: SWAP2
000023f2: PUSH32 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff
00002413: SWAP2
00002414: SWAP1
00002415: LOG4
00002416: POP
00002417: POP
00002418: POP
00002419: POP
0000241a: JUMP
0000241b: JUMPDEST
0000241c: PUSH0
0000241d: PUSH0
0000241e: DUP1
0000241f: MLOAD
00002420: PUSH1 0x20
00002422: PUSH2 0x5a7e
00002425: DUP4
00002426: CODECOPY
00002427: DUP2
00002428: MLOAD
00002429: SWAP2
0000242a: MSTORE
0000242b: DUP2
0000242c: PUSH2 0x2435
0000242f: DUP6
00002430: DUP6
00002431: PUSH2 0x387e
00002434: JUMP
00002435: JUMPDEST
00002436: SWAP1
00002437: POP
00002438: DUP1
00002439: ISZERO
0000243a: PUSH2 0x1919
0000243d: JUMPI
0000243e: PUSH0
0000243f: DUP6
00002440: DUP2
00002441: MSTORE
00002442: PUSH1 0x20
00002444: DUP4
00002445: SWAP1
00002446: MSTORE
00002447: PUSH1 0x40
00002449: SWAP1
0000244a: KECCAK256
0000244b: PUSH2 0x2454
0000244e: SWAP1
0000244f: DUP6
00002450: PUSH2 0x3926
00002453: JUMP
00002454: JUMPDEST
00002455: POP
00002456: SWAP5
00002457: SWAP4
00002458: POP
00002459: POP
0000245a: POP
0000245b: POP
0000245c: JUMP
0000245d: JUMPDEST
0000245e: DUP1
0000245f: MLOAD
00002460: PUSH1 0x01
00002462: PUSH1 0x01
00002464: PUSH1 0xa0
00002466: SHL
00002467: SUB
00002468: AND
00002469: PUSH2 0x24f8
0000246c: JUMPI
0000246d: PUSH1 0x20
0000246f: DUP2
00002470: ADD
00002471: MLOAD
00002472: PUSH1 0x01
00002474: PUSH1 0x01
00002476: PUSH1 0xd0
00002478: SHL
00002479: SUB
0000247a: NOT
0000247b: AND
0000247c: ISZERO
0000247d: ISZERO
0000247e: DUP1
0000247f: PUSH2 0x2495
00002482: JUMPI
00002483: POP
00002484: PUSH1 0x40
00002486: DUP2
00002487: ADD
00002488: MLOAD
00002489: PUSH1 0x01
0000248b: PUSH1 0x01
0000248d: PUSH1 0xd0
0000248f: SHL
00002490: SUB
00002491: NOT
00002492: AND
00002493: ISZERO
00002494: ISZERO
00002495: JUMPDEST
00002496: ISZERO
00002497: PUSH2 0x1848
0000249a: JUMPI
0000249b: PUSH1 0x40
0000249d: MLOAD
0000249e: PUSH4 0x2e3505a9
000024a3: PUSH1 0xe0
000024a5: SHL
000024a6: DUP2
000024a7: MSTORE
000024a8: PUSH1 0x20
000024aa: PUSH1 0x04
000024ac: DUP3
000024ad: ADD
000024ae: MSTORE
000024af: PUSH1 0x2c
000024b1: PUSH1 0x24
000024b3: DUP3
000024b4: ADD
000024b5: MSTORE
000024b6: PUSH32 0x756e6c6f636b657220697320756e736574206275742066756e6374696f6e2074
000024d7: PUSH1 0x44
000024d9: DUP3
000024da: ADD
000024db: MSTORE
000024dc: PUSH12 0x1e5c195cc8185c99481cd95d
000024e9: PUSH1 0xa2
000024eb: SHL
000024ec: PUSH1 0x64
000024ee: DUP3
000024ef: ADD
000024f0: MSTORE
000024f1: PUSH1 0x84
000024f3: ADD
000024f4: PUSH2 0x14fa
000024f7: JUMP
000024f8: JUMPDEST
000024f9: PUSH1 0x20
000024fb: DUP2
000024fc: ADD
000024fd: MLOAD
000024fe: PUSH1 0x01
00002500: PUSH1 0x01
00002502: PUSH1 0xd0
00002504: SHL
00002505: SUB
00002506: NOT
00002507: AND
00002508: PUSH6 0x0448a88550a9
0000250f: PUSH1 0xd1
00002511: SHL
00002512: EQ
00002513: DUP1
00002514: ISZERO
00002515: SWAP1
00002516: PUSH2 0x2536
00002519: JUMPI
0000251a: POP
0000251b: PUSH1 0x20
0000251d: DUP2
0000251e: ADD
0000251f: MLOAD
00002520: PUSH1 0x01
00002522: PUSH1 0x01
00002524: PUSH1 0xd0
00002526: SHL
00002527: SUB
00002528: NOT
00002529: AND
0000252a: PUSH6 0x4d8ad6b7fe1b
00002531: PUSH1 0xd0
00002533: SHL
00002534: EQ
00002535: ISZERO
00002536: JUMPDEST
00002537: ISZERO
00002538: PUSH2 0x2566
0000253b: JUMPI
0000253c: PUSH1 0x20
0000253e: DUP2
0000253f: ADD
00002540: MLOAD
00002541: PUSH1 0x40
00002543: MLOAD
00002544: PUSH4 0x084523c5
00002549: PUSH1 0xe1
0000254b: SHL
0000254c: DUP2
0000254d: MSTORE
0000254e: PUSH1 0x01
00002550: PUSH1 0x01
00002552: PUSH1 0xd0
00002554: SHL
00002555: SUB
00002556: NOT
00002557: SWAP1
00002558: SWAP2
00002559: AND
0000255a: PUSH1 0x04
0000255c: DUP3
0000255d: ADD
0000255e: MSTORE
0000255f: PUSH1 0x24
00002561: ADD
00002562: PUSH2 0x14fa
00002565: JUMP
00002566: JUMPDEST
00002567: PUSH1 0x40
00002569: DUP2
0000256a: ADD
0000256b: MLOAD
0000256c: PUSH1 0x01
0000256e: PUSH1 0x01
00002570: PUSH1 0xd0
00002572: SHL
00002573: SUB
00002574: NOT
00002575: AND
00002576: PUSH6 0x0448a88550a9
0000257d: PUSH1 0xd1
0000257f: SHL
00002580: EQ
00002581: DUP1
00002582: ISZERO
00002583: SWAP1
00002584: PUSH2 0x25a4
00002587: JUMPI
00002588: POP
00002589: PUSH1 0x40
0000258b: DUP2
0000258c: ADD
0000258d: MLOAD
0000258e: PUSH1 0x01
00002590: PUSH1 0x01
00002592: PUSH1 0xd0
00002594: SHL
00002595: SUB
00002596: NOT
00002597: AND
00002598: PUSH6 0x4d8ad6b7fe1b
0000259f: PUSH1 0xd0
000025a1: SHL
000025a2: EQ
000025a3: ISZERO
000025a4: JUMPDEST
000025a5: ISZERO
000025a6: PUSH2 0x1848
000025a9: JUMPI
000025aa: PUSH1 0x40
000025ac: DUP1
000025ad: DUP3
000025ae: ADD
000025af: MLOAD
000025b0: SWAP1
000025b1: MLOAD
000025b2: PUSH4 0x084523c5
000025b7: PUSH1 0xe1
000025b9: SHL
000025ba: DUP2
000025bb: MSTORE
000025bc: PUSH1 0x01
000025be: PUSH1 0x01
000025c0: PUSH1 0xd0
000025c2: SHL
000025c3: SUB
000025c4: NOT
000025c5: SWAP1
000025c6: SWAP2
000025c7: AND
000025c8: PUSH1 0x04
000025ca: DUP3
000025cb: ADD
000025cc: MSTORE
000025cd: PUSH1 0x24
000025cf: ADD
000025d0: PUSH2 0x14fa
000025d3: JUMP
000025d4: JUMPDEST
000025d5: PUSH0
000025d6: DUP1
000025d7: DUP4
000025d8: MLOAD
000025d9: PUSH1 0x01
000025db: PUSH1 0x01
000025dd: PUSH1 0x40
000025df: SHL
000025e0: SUB
000025e1: DUP2
000025e2: GT
000025e3: ISZERO
000025e4: PUSH2 0x25ef
000025e7: JUMPI
000025e8: PUSH2 0x25ef
000025eb: PUSH2 0x46ae
000025ee: JUMP
000025ef: JUMPDEST
000025f0: PUSH1 0x40
000025f2: MLOAD
000025f3: SWAP1
000025f4: DUP1
000025f5: DUP3
000025f6: MSTORE
000025f7: DUP1
000025f8: PUSH1 0x20
000025fa: MUL
000025fb: PUSH1 0x20
000025fd: ADD
000025fe: DUP3
000025ff: ADD
00002600: PUSH1 0x40
00002602: MSTORE
00002603: DUP1
00002604: ISZERO
00002605: PUSH2 0x2618
00002608: JUMPI
00002609: DUP2
0000260a: PUSH1 0x20
0000260c: ADD
0000260d: PUSH1 0x20
0000260f: DUP3
00002610: MUL
00002611: DUP1
00002612: CALLDATASIZE
00002613: DUP4
00002614: CALLDATACOPY
00002615: ADD
00002616: SWAP1
00002617: POP
00002618: JUMPDEST
00002619: POP
0000261a: SWAP1
0000261b: POP
0000261c: PUSH0
0000261d: JUMPDEST
0000261e: DUP5
0000261f: MLOAD
00002620: DUP2
00002621: LT
00002622: ISZERO
00002623: PUSH2 0x282d
00002626: JUMPI
00002627: PUSH0
00002628: DUP6
00002629: DUP3
0000262a: DUP2
0000262b: MLOAD
0000262c: DUP2
0000262d: LT
0000262e: PUSH2 0x2639
00002631: JUMPI
00002632: PUSH2 0x2639
00002635: PUSH2 0x52f4
00002638: JUMP
00002639: JUMPDEST
0000263a: PUSH1 0x20
0000263c: SWAP1
0000263d: DUP2
0000263e: MUL
0000263f: SWAP2
00002640: SWAP1
00002641: SWAP2
00002642: ADD
00002643: ADD
00002644: MLOAD
00002645: DUP1
00002646: MLOAD
00002647: SWAP1
00002648: SWAP2
00002649: POP
0000264a: PUSH1 0x01
0000264c: PUSH1 0x01
0000264e: PUSH1 0x80
00002650: SHL
00002651: SUB
00002652: NOT
00002653: AND
00002654: PUSH2 0x2670
00002657: JUMPI
00002658: PUSH1 0x40
0000265a: MLOAD
0000265b: PUSH4 0x01f6ffb9
00002660: PUSH1 0xe3
00002662: SHL
00002663: DUP2
00002664: MSTORE
00002665: PUSH1 0x04
00002667: ADD
00002668: PUSH2 0x14fa
0000266b: SWAP1
0000266c: PUSH2 0x55ba
0000266f: JUMP
00002670: JUMPDEST
00002671: PUSH1 0x20
00002673: DUP2
00002674: ADD
00002675: MLOAD
00002676: PUSH1 0x01
00002678: PUSH1 0x01
0000267a: PUSH1 0xa0
0000267c: SHL
0000267d: SUB
0000267e: AND
0000267f: PUSH2 0x26bc
00002682: JUMPI
00002683: PUSH1 0x40
00002685: MLOAD
00002686: PUSH4 0x01f6ffb9
0000268b: PUSH1 0xe3
0000268d: SHL
0000268e: DUP2
0000268f: MSTORE
00002690: PUSH1 0x20
00002692: PUSH1 0x04
00002694: DUP3
00002695: ADD
00002696: MSTORE
00002697: PUSH1 0x0e
00002699: PUSH1 0x24
0000269b: DUP3
0000269c: ADD
0000269d: MSTORE
0000269e: PUSH14 0x7369676e6572206973207a65726f
000026ad: PUSH1 0x90
000026af: SHL
000026b0: PUSH1 0x44
000026b2: DUP3
000026b3: ADD
000026b4: MSTORE
000026b5: PUSH1 0x64
000026b7: ADD
000026b8: PUSH2 0x14fa
000026bb: JUMP
000026bc: JUMPDEST
000026bd: DUP1
000026be: PUSH1 0x40
000026c0: ADD
000026c1: MLOAD
000026c2: PUSH1 0x01
000026c4: PUSH1 0x01
000026c6: PUSH1 0x40
000026c8: SHL
000026c9: SUB
000026ca: AND
000026cb: PUSH0
000026cc: SUB
000026cd: PUSH2 0x2719
000026d0: JUMPI
000026d1: PUSH1 0x40
000026d3: MLOAD
000026d4: PUSH4 0x01f6ffb9
000026d9: PUSH1 0xe3
000026db: SHL
000026dc: DUP2
000026dd: MSTORE
000026de: PUSH1 0x20
000026e0: PUSH1 0x04
000026e2: DUP3
000026e3: ADD
000026e4: MSTORE
000026e5: PUSH1 0x17
000026e7: PUSH1 0x24
000026e9: DUP3
000026ea: ADD
000026eb: MSTORE
000026ec: PUSH32 0x616d6f756e7420696e766573746564206973207a65726f000000000000000000
0000270d: PUSH1 0x44
0000270f: DUP3
00002710: ADD
00002711: MSTORE
00002712: PUSH1 0x64
00002714: ADD
00002715: PUSH2 0x14fa
00002718: JUMP
00002719: JUMPDEST
0000271a: DUP1
0000271b: PUSH1 0x60
0000271d: ADD
0000271e: MLOAD
0000271f: PUSH1 0x01
00002721: PUSH1 0x01
00002723: PUSH1 0x40
00002725: SHL
00002726: SUB
00002727: AND
00002728: PUSH0
00002729: SUB
0000272a: PUSH2 0x2776
0000272d: JUMPI
0000272e: PUSH1 0x40
00002730: MLOAD
00002731: PUSH4 0x01f6ffb9
00002736: PUSH1 0xe3
00002738: SHL
00002739: DUP2
0000273a: MSTORE
0000273b: PUSH1 0x20
0000273d: PUSH1 0x04
0000273f: DUP3
00002740: ADD
00002741: MSTORE
00002742: PUSH1 0x1a
00002744: PUSH1 0x24
00002746: DUP3
00002747: ADD
00002748: MSTORE
00002749: PUSH32 0x646973747269627574696f6e536861726573206973207a65726f000000000000
0000276a: PUSH1 0x44
0000276c: DUP3
0000276d: ADD
0000276e: MSTORE
0000276f: PUSH1 0x64
00002771: ADD
00002772: PUSH2 0x14fa
00002775: JUMP
00002776: JUMPDEST
00002777: PUSH1 0x60
00002779: DUP2
0000277a: ADD
0000277b: MLOAD
0000277c: PUSH2 0x2785
0000277f: SWAP1
00002780: DUP6
00002781: PUSH2 0x5606
00002784: JUMP
00002785: JUMPDEST
00002786: PUSH1 0x40
00002788: DUP1
00002789: MLOAD
0000278a: DUP4
0000278b: MLOAD
0000278c: PUSH1 0x01
0000278e: PUSH1 0x01
00002790: PUSH1 0x80
00002792: SHL
00002793: SUB
00002794: NOT
00002795: AND
00002796: PUSH1 0x20
00002798: DUP1
00002799: DUP4
0000279a: ADD
0000279b: SWAP2
0000279c: SWAP1
0000279d: SWAP2
0000279e: MSTORE
0000279f: DUP5
000027a0: ADD
000027a1: MLOAD
000027a2: PUSH1 0x01
000027a4: PUSH1 0x01
000027a6: PUSH1 0xa0
000027a8: SHL
000027a9: SUB
000027aa: AND
000027ab: DUP2
000027ac: DUP4
000027ad: ADD
000027ae: MSTORE
000027af: SWAP1
000027b0: DUP4
000027b1: ADD
000027b2: MLOAD
000027b3: PUSH1 0x01
000027b5: PUSH1 0x01
000027b7: PUSH1 0x40
000027b9: SHL
000027ba: SUB
000027bb: SWAP1
000027bc: DUP2
000027bd: AND
000027be: PUSH1 0x60
000027c0: DUP1
000027c1: DUP5
000027c2: ADD
000027c3: SWAP2
000027c4: SWAP1
000027c5: SWAP2
000027c6: MSTORE
000027c7: DUP5
000027c8: ADD
000027c9: MLOAD
000027ca: AND
000027cb: PUSH1 0x80
000027cd: DUP1
000027ce: DUP4
000027cf: ADD
000027d0: SWAP2
000027d1: SWAP1
000027d2: SWAP2
000027d3: MSTORE
000027d4: DUP4
000027d5: ADD
000027d6: MLOAD
000027d7: ISZERO
000027d8: ISZERO
000027d9: PUSH1 0xa0
000027db: DUP3
000027dc: ADD
000027dd: MSTORE
000027de: SWAP1
000027df: SWAP5
000027e0: POP
000027e1: PUSH2 0x2807
000027e4: SWAP1
000027e5: PUSH1 0xc0
000027e7: ADD
000027e8: JUMPDEST
000027e9: PUSH1 0x40
000027eb: MLOAD
000027ec: PUSH1 0x20
000027ee: DUP2
000027ef: DUP4
000027f0: SUB
000027f1: SUB
000027f2: DUP2
000027f3: MSTORE
000027f4: SWAP1
000027f5: PUSH1 0x40
000027f7: MSTORE
000027f8: DUP1
000027f9: MLOAD
000027fa: PUSH1 0x20
000027fc: SWAP2
000027fd: DUP3
000027fe: ADD
000027ff: KECCAK256
00002800: PUSH0
00002801: SWAP1
00002802: DUP2
00002803: MSTORE
00002804: KECCAK256
00002805: SWAP1
00002806: JUMP
00002807: JUMPDEST
00002808: DUP4
00002809: DUP4
0000280a: DUP2
0000280b: MLOAD
0000280c: DUP2
0000280d: LT
0000280e: PUSH2 0x2819
00002811: JUMPI
00002812: PUSH2 0x2819
00002815: PUSH2 0x52f4
00002818: JUMP
00002819: JUMPDEST
0000281a: PUSH1 0x20
0000281c: SWAP1
0000281d: DUP2
0000281e: MUL
0000281f: SWAP2
00002820: SWAP1
00002821: SWAP2
00002822: ADD
00002823: ADD
00002824: MSTORE
00002825: POP
00002826: PUSH1 0x01
00002828: ADD
00002829: PUSH2 0x261d
0000282c: JUMP
0000282d: JUMPDEST
0000282e: POP
0000282f: PUSH1 0x03
00002831: DUP1
00002832: SLOAD
00002833: PUSH8 0xffffffffffffffff
0000283c: PUSH1 0x80
0000283e: SHL
0000283f: NOT
00002840: AND
00002841: PUSH1 0x01
00002843: PUSH1 0x80
00002845: SHL
00002846: PUSH1 0x01
00002848: PUSH1 0x01
0000284a: PUSH1 0x40
0000284c: SHL
0000284d: SUB
0000284e: DUP6
0000284f: AND
00002850: MUL
00002851: OR
00002852: SWAP1
00002853: SSTORE
00002854: PUSH0
00002855: PUSH2 0x285d
00002858: DUP3
00002859: PUSH2 0x393a
0000285c: JUMP
0000285d: JUMPDEST
0000285e: SWAP1
0000285f: POP
00002860: DUP4
00002861: DUP2
00002862: EQ
00002863: PUSH2 0x2885
00002866: JUMPI
00002867: DUP2
00002868: DUP2
00002869: DUP6
0000286a: PUSH1 0x40
0000286c: MLOAD
0000286d: PUSH4 0x16af695b
00002872: PUSH1 0xe1
00002874: SHL
00002875: DUP2
00002876: MSTORE
00002877: PUSH1 0x04
00002879: ADD
0000287a: PUSH2 0x14fa
0000287d: SWAP4
0000287e: SWAP3
0000287f: SWAP2
00002880: SWAP1
00002881: PUSH2 0x5626
00002884: JUMP
00002885: JUMPDEST
00002886: PUSH1 0x0a
00002888: SSTORE
00002889: POP
0000288a: POP
0000288b: POP
0000288c: POP
0000288d: JUMP
0000288e: JUMPDEST
0000288f: PUSH1 0x0c
00002891: SLOAD
00002892: DUP1
00002893: ISZERO
00002894: PUSH2 0x2910
00002897: JUMPI
00002898: PUSH0
00002899: JUMPDEST
0000289a: DUP2
0000289b: DUP2
0000289c: LT
0000289d: ISZERO
0000289e: PUSH2 0x2904
000028a1: JUMPI
000028a2: PUSH1 0x0b
000028a4: PUSH0
000028a5: PUSH1 0x0c
000028a7: DUP4
000028a8: DUP2
000028a9: SLOAD
000028aa: DUP2
000028ab: LT
000028ac: PUSH2 0x28b7
000028af: JUMPI
000028b0: PUSH2 0x28b7
000028b3: PUSH2 0x52f4
000028b6: JUMP
000028b7: JUMPDEST
000028b8: PUSH0
000028b9: SWAP2
000028ba: DUP3
000028bb: MSTORE
000028bc: PUSH1 0x20
000028be: DUP1
000028bf: DUP4
000028c0: KECCAK256
000028c1: PUSH1 0x02
000028c3: DUP4
000028c4: DIV
000028c5: ADD
000028c6: SLOAD
000028c7: PUSH1 0x01
000028c9: SWAP3
000028ca: DUP4
000028cb: AND
000028cc: PUSH1 0x10
000028ce: MUL
000028cf: PUSH2 0x0100
000028d2: EXP
000028d3: SWAP1
000028d4: DIV
000028d5: PUSH1 0x80
000028d7: SHL
000028d8: PUSH1 0x01
000028da: PUSH1 0x01
000028dc: PUSH1 0x80
000028de: SHL
000028df: SUB
000028e0: NOT
000028e1: AND
000028e2: DUP5
000028e3: MSTORE
000028e4: DUP4
000028e5: ADD
000028e6: SWAP4
000028e7: SWAP1
000028e8: SWAP4
000028e9: MSTORE
000028ea: PUSH1 0x40
000028ec: SWAP1
000028ed: SWAP2
000028ee: ADD
000028ef: SWAP1
000028f0: KECCAK256
000028f1: DUP1
000028f2: SLOAD
000028f3: PUSH1 0x01
000028f5: PUSH1 0x01
000028f7: PUSH1 0xb0
000028f9: SHL
000028fa: SUB
000028fb: NOT
000028fc: AND
000028fd: SWAP1
000028fe: SSTORE
000028ff: ADD
00002900: PUSH2 0x2899
00002903: JUMP
00002904: JUMPDEST
00002905: POP
00002906: PUSH2 0x2910
00002909: PUSH1 0x0c
0000290b: PUSH0
0000290c: PUSH2 0x4652
0000290f: JUMP
00002910: JUMPDEST
00002911: PUSH0
00002912: DUP1
00002913: JUMPDEST
00002914: DUP4
00002915: MLOAD
00002916: DUP2
00002917: LT
00002918: ISZERO
00002919: PUSH2 0x2b4f
0000291c: JUMPI
0000291d: PUSH0
0000291e: DUP5
0000291f: DUP3
00002920: DUP2
00002921: MLOAD
00002922: DUP2
00002923: LT
00002924: PUSH2 0x292f
00002927: JUMPI
00002928: PUSH2 0x292f
0000292b: PUSH2 0x52f4
0000292e: JUMP
0000292f: JUMPDEST
00002930: PUSH1 0x20
00002932: SWAP1
00002933: DUP2
00002934: MUL
00002935: SWAP2
00002936: SWAP1
00002937: SWAP2
00002938: ADD
00002939: ADD
0000293a: MLOAD
0000293b: DUP1
0000293c: MLOAD
0000293d: SWAP1
0000293e: SWAP2
0000293f: POP
00002940: PUSH1 0x01
00002942: PUSH1 0x01
00002944: PUSH1 0x80
00002946: SHL
00002947: SUB
00002948: NOT
00002949: AND
0000294a: PUSH2 0x2966
0000294d: JUMPI
0000294e: PUSH1 0x40
00002950: MLOAD
00002951: PUSH4 0x01f6ffb9
00002956: PUSH1 0xe3
00002958: SHL
00002959: DUP2
0000295a: MSTORE
0000295b: PUSH1 0x04
0000295d: ADD
0000295e: PUSH2 0x14fa
00002961: SWAP1
00002962: PUSH2 0x55ba
00002965: JUMP
00002966: JUMPDEST
00002967: PUSH1 0x20
00002969: DUP2
0000296a: ADD
0000296b: MLOAD
0000296c: PUSH1 0x01
0000296e: PUSH1 0x01
00002970: PUSH1 0xa0
00002972: SHL
00002973: SUB
00002974: AND
00002975: PUSH2 0x29b2
00002978: JUMPI
00002979: PUSH1 0x40
0000297b: MLOAD
0000297c: PUSH4 0x01f6ffb9
00002981: PUSH1 0xe3
00002983: SHL
00002984: DUP2
00002985: MSTORE
00002986: PUSH1 0x20
00002988: PUSH1 0x04
0000298a: DUP3
0000298b: ADD
0000298c: MSTORE
0000298d: PUSH1 0x0e
0000298f: PUSH1 0x24
00002991: DUP3
00002992: ADD
00002993: MSTORE
00002994: PUSH14 0x7369676e6572206973207a65726f
000029a3: PUSH1 0x90
000029a5: SHL
000029a6: PUSH1 0x44
000029a8: DUP3
000029a9: ADD
000029aa: MSTORE
000029ab: PUSH1 0x64
000029ad: ADD
000029ae: PUSH2 0x14fa
000029b1: JUMP
000029b2: JUMPDEST
000029b3: DUP1
000029b4: PUSH1 0x40
000029b6: ADD
000029b7: MLOAD
000029b8: PUSH2 0xffff
000029bb: AND
000029bc: PUSH0
000029bd: SUB
000029be: PUSH2 0x29fe
000029c1: JUMPI
000029c2: PUSH1 0x40
000029c4: MLOAD
000029c5: PUSH4 0x01f6ffb9
000029ca: PUSH1 0xe3
000029cc: SHL
000029cd: DUP2
000029ce: MSTORE
000029cf: PUSH1 0x20
000029d1: PUSH1 0x04
000029d3: DUP3
000029d4: ADD
000029d5: MSTORE
000029d6: PUSH1 0x11
000029d8: PUSH1 0x24
000029da: DUP3
000029db: ADD
000029dc: MSTORE
000029dd: PUSH17 0x636172727920425053206973207a65726f
000029ef: PUSH1 0x78
000029f1: SHL
000029f2: PUSH1 0x44
000029f4: DUP3
000029f5: ADD
000029f6: MSTORE
000029f7: PUSH1 0x64
000029f9: ADD
000029fa: PUSH2 0x14fa
000029fd: JUMP
000029fe: JUMPDEST
000029ff: DUP1
00002a00: MLOAD
00002a01: PUSH1 0x01
00002a03: PUSH1 0x01
00002a05: PUSH1 0x80
00002a07: SHL
00002a08: SUB
00002a09: NOT
00002a0a: AND
00002a0b: PUSH0
00002a0c: SWAP1
00002a0d: DUP2
00002a0e: MSTORE
00002a0f: PUSH1 0x0b
00002a11: PUSH1 0x20
00002a13: MSTORE
00002a14: PUSH1 0x40
00002a16: SWAP1
00002a17: KECCAK256
00002a18: SLOAD
00002a19: PUSH1 0x01
00002a1b: PUSH1 0x01
00002a1d: PUSH1 0xa0
00002a1f: SHL
00002a20: SUB
00002a21: AND
00002a22: ISZERO
00002a23: PUSH2 0x2a6f
00002a26: JUMPI
00002a27: PUSH1 0x40
00002a29: MLOAD
00002a2a: PUSH4 0x01f6ffb9
00002a2f: PUSH1 0xe3
00002a31: SHL
00002a32: DUP2
00002a33: MSTORE
00002a34: PUSH1 0x20
00002a36: PUSH1 0x04
00002a38: DUP3
00002a39: ADD
00002a3a: MSTORE
00002a3b: PUSH1 0x19
00002a3d: PUSH1 0x24
00002a3f: DUP3
00002a40: ADD
00002a41: MSTORE
00002a42: PUSH32 0x656e746974795555494420616c72656164792065786973747300000000000000
00002a63: PUSH1 0x44
00002a65: DUP3
00002a66: ADD
00002a67: MSTORE
00002a68: PUSH1 0x64
00002a6a: ADD
00002a6b: PUSH2 0x14fa
00002a6e: JUMP
00002a6f: JUMPDEST
00002a70: PUSH1 0x40
00002a72: DUP2
00002a73: ADD
00002a74: MLOAD
00002a75: PUSH2 0x2a7e
00002a78: SWAP1
00002a79: DUP5
00002a7a: PUSH2 0x553b
00002a7d: JUMP
00002a7e: JUMPDEST
00002a7f: DUP2
00002a80: MLOAD
00002a81: PUSH1 0x0c
00002a83: DUP1
00002a84: SLOAD
00002a85: PUSH1 0x01
00002a87: DUP1
00002a88: DUP3
00002a89: ADD
00002a8a: DUP4
00002a8b: SSTORE
00002a8c: PUSH0
00002a8d: SWAP3
00002a8e: DUP4
00002a8f: MSTORE
00002a90: PUSH32 0xdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7
00002ab1: PUSH1 0x02
00002ab3: DUP4
00002ab4: DIV
00002ab5: ADD
00002ab6: DUP1
00002ab7: SLOAD
00002ab8: PUSH1 0x01
00002aba: PUSH1 0x01
00002abc: PUSH1 0x80
00002abe: SHL
00002abf: SUB
00002ac0: SWAP4
00002ac1: DUP4
00002ac2: AND
00002ac3: PUSH1 0x10
00002ac5: MUL
00002ac6: PUSH2 0x0100
00002ac9: EXP
00002aca: SWAP4
00002acb: DUP5
00002acc: MUL
00002acd: NOT
00002ace: AND
00002acf: PUSH1 0x80
00002ad1: SWAP6
00002ad2: SWAP1
00002ad3: SWAP6
00002ad4: SHR
00002ad5: SWAP3
00002ad6: SWAP1
00002ad7: SWAP3
00002ad8: MUL
00002ad9: SWAP4
00002ada: SWAP1
00002adb: SWAP4
00002adc: OR
00002add: SWAP1
00002ade: SSTORE
00002adf: PUSH1 0x40
00002ae1: DUP1
00002ae2: MLOAD
00002ae3: DUP1
00002ae4: DUP3
00002ae5: ADD
00002ae6: DUP3
00002ae7: MSTORE
00002ae8: PUSH1 0x20
00002aea: DUP1
00002aeb: DUP8
00002aec: ADD
00002aed: MLOAD
00002aee: PUSH1 0x01
00002af0: PUSH1 0x01
00002af2: PUSH1 0xa0
00002af4: SHL
00002af5: SUB
00002af6: SWAP1
00002af7: DUP2
00002af8: AND
00002af9: DUP4
00002afa: MSTORE
00002afb: DUP4
00002afc: DUP9
00002afd: ADD
00002afe: MLOAD
00002aff: PUSH2 0xffff
00002b02: SWAP1
00002b03: DUP2
00002b04: AND
00002b05: DUP4
00002b06: DUP6
00002b07: ADD
00002b08: SWAP1
00002b09: DUP2
00002b0a: MSTORE
00002b0b: SWAP9
00002b0c: MLOAD
00002b0d: PUSH1 0x01
00002b0f: PUSH1 0x01
00002b11: PUSH1 0x80
00002b13: SHL
00002b14: SUB
00002b15: NOT
00002b16: AND
00002b17: DUP7
00002b18: MSTORE
00002b19: PUSH1 0x0b
00002b1b: SWAP1
00002b1c: SWAP3
00002b1d: MSTORE
00002b1e: SWAP3
00002b1f: SWAP1
00002b20: SWAP4
00002b21: KECCAK256
00002b22: SWAP1
00002b23: MLOAD
00002b24: DUP2
00002b25: SLOAD
00002b26: SWAP7
00002b27: MLOAD
00002b28: SWAP3
00002b29: AND
00002b2a: PUSH1 0x01
00002b2c: PUSH1 0x01
00002b2e: PUSH1 0xb0
00002b30: SHL
00002b31: SUB
00002b32: NOT
00002b33: SWAP1
00002b34: SWAP7
00002b35: AND
00002b36: SWAP6
00002b37: SWAP1
00002b38: SWAP6
00002b39: OR
00002b3a: PUSH1 0x01
00002b3c: PUSH1 0xa0
00002b3e: SHL
00002b3f: SWAP2
00002b40: SWAP1
00002b41: SWAP3
00002b42: AND
00002b43: MUL
00002b44: OR
00002b45: SWAP1
00002b46: SWAP3
00002b47: SSTORE
00002b48: SWAP3
00002b49: POP
00002b4a: ADD
00002b4b: PUSH2 0x2913
00002b4e: JUMP
00002b4f: JUMPDEST
00002b50: POP
00002b51: PUSH1 0x07
00002b53: SLOAD
00002b54: PUSH2 0x2b61
00002b57: SWAP1
00002b58: PUSH2 0xffff
00002b5b: AND
00002b5c: DUP3
00002b5d: PUSH2 0x553b
00002b60: JUMP
00002b61: JUMPDEST
00002b62: PUSH1 0x03
00002b64: PUSH1 0x18
00002b66: PUSH2 0x0100
00002b69: EXP
00002b6a: DUP2
00002b6b: SLOAD
00002b6c: DUP2
00002b6d: PUSH2 0xffff
00002b70: MUL
00002b71: NOT
00002b72: AND
00002b73: SWAP1
00002b74: DUP4
00002b75: PUSH2 0xffff
00002b78: AND
00002b79: MUL
00002b7a: OR
00002b7b: SWAP1
00002b7c: SSTORE
00002b7d: POP
00002b7e: POP
00002b7f: POP
00002b80: POP
00002b81: JUMP
00002b82: JUMPDEST
00002b83: PUSH2 0x1848
00002b86: DUP2
00002b87: CALLER
00002b88: PUSH2 0x3995
00002b8b: JUMP
00002b8c: JUMPDEST
00002b8d: PUSH1 0x02
00002b8f: DUP1
00002b90: SLOAD
00002b91: DUP3
00002b92: ISZERO
00002b93: ISZERO
00002b94: PUSH1 0x01
00002b96: PUSH1 0xa0
00002b98: SHL
00002b99: MUL
00002b9a: PUSH1 0xff
00002b9c: PUSH1 0xa0
00002b9e: SHL
00002b9f: NOT
00002ba0: SWAP1
00002ba1: SWAP2
00002ba2: AND
00002ba3: OR
00002ba4: SWAP1
00002ba5: SSTORE
00002ba6: PUSH1 0x40
00002ba8: MLOAD
00002ba9: PUSH4 0x1946c7b9
00002bae: PUSH1 0xe1
00002bb0: SHL
00002bb1: SWAP1
00002bb2: PUSH32 0x11f2fec7a1604d7d8ea8b74ed1666060410561f7e666aee037dcf3f9292cb4c1
00002bd3: SWAP1
00002bd4: PUSH2 0x2be7
00002bd7: SWAP1
00002bd8: DUP5
00002bd9: SWAP1
00002bda: PUSH1 0x20
00002bdc: ADD
00002bdd: SWAP1
00002bde: ISZERO
00002bdf: ISZERO
00002be0: DUP2
00002be1: MSTORE
00002be2: PUSH1 0x20
00002be4: ADD
00002be5: SWAP1
00002be6: JUMP
00002be7: JUMPDEST
00002be8: PUSH1 0x40
00002bea: DUP1
00002beb: MLOAD
00002bec: PUSH1 0x1f
00002bee: NOT
00002bef: DUP2
00002bf0: DUP5
00002bf1: SUB
00002bf2: ADD
00002bf3: DUP2
00002bf4: MSTORE
00002bf5: SWAP1
00002bf6: DUP3
00002bf7: SWAP1
00002bf8: MSTORE
00002bf9: PUSH2 0x2c01
00002bfc: SWAP2
00002bfd: PUSH2 0x5674
00002c00: JUMP
00002c01: JUMPDEST
00002c02: PUSH1 0x40
00002c04: MLOAD
00002c05: DUP1
00002c06: SWAP2
00002c07: SUB
00002c08: SWAP1
00002c09: LOG2
00002c0a: POP
00002c0b: JUMP
00002c0c: JUMPDEST
00002c0d: PUSH0
00002c0e: DUP1
00002c0f: PUSH1 0x06
00002c11: SLOAD
00002c12: PUSH1 0x05
00002c14: SLOAD
00002c15: PUSH1 0x04
00002c17: SLOAD
00002c18: PUSH2 0x2c21
00002c1b: SWAP2
00002c1c: SWAP1
00002c1d: PUSH2 0x56ad
00002c20: JUMP
00002c21: JUMPDEST
00002c22: PUSH1 0x02
00002c24: SLOAD
00002c25: PUSH1 0x40
00002c27: MLOAD
00002c28: PUSH4 0x70a08231
00002c2d: PUSH1 0xe0
00002c2f: SHL
00002c30: DUP2
00002c31: MSTORE
00002c32: ADDRESS
00002c33: PUSH1 0x04
00002c35: DUP3
00002c36: ADD
00002c37: MSTORE
00002c38: PUSH1 0x01
00002c3a: PUSH1 0x01
00002c3c: PUSH1 0xa0
00002c3e: SHL
00002c3f: SUB
00002c40: SWAP1
00002c41: SWAP2
00002c42: AND
00002c43: SWAP1
00002c44: PUSH4 0x70a08231
00002c49: SWAP1
00002c4a: PUSH1 0x24
00002c4c: ADD
00002c4d: PUSH1 0x20
00002c4f: PUSH1 0x40
00002c51: MLOAD
00002c52: DUP1
00002c53: DUP4
00002c54: SUB
00002c55: DUP2
00002c56: DUP7
00002c57: GAS
00002c58: STATICCALL
00002c59: ISZERO
00002c5a: DUP1
00002c5b: ISZERO
00002c5c: PUSH2 0x2c67
00002c5f: JUMPI
00002c60: RETURNDATASIZE
00002c61: PUSH0
00002c62: DUP1
00002c63: RETURNDATACOPY
00002c64: RETURNDATASIZE
00002c65: PUSH0
00002c66: REVERT
00002c67: JUMPDEST
00002c68: POP
00002c69: POP
00002c6a: POP
00002c6b: POP
00002c6c: PUSH1 0x40
00002c6e: MLOAD
00002c6f: RETURNDATASIZE
00002c70: PUSH1 0x1f
00002c72: NOT
00002c73: PUSH1 0x1f
00002c75: DUP3
00002c76: ADD
00002c77: AND
00002c78: DUP3
00002c79: ADD
00002c7a: DUP1
00002c7b: PUSH1 0x40
00002c7d: MSTORE
00002c7e: POP
00002c7f: DUP2
00002c80: ADD
00002c81: SWAP1
00002c82: PUSH2 0x2c8b
00002c85: SWAP2
00002c86: SWAP1
00002c87: PUSH2 0x56c0
00002c8a: JUMP
00002c8b: JUMPDEST
00002c8c: PUSH2 0x2c95
00002c8f: SWAP2
00002c90: SWAP1
00002c91: PUSH2 0x54d7
00002c94: JUMP
00002c95: JUMPDEST
00002c96: PUSH2 0x2c9f
00002c99: SWAP2
00002c9a: SWAP1
00002c9b: PUSH2 0x54d7
00002c9e: JUMP
00002c9f: JUMPDEST
00002ca0: SWAP1
00002ca1: POP
00002ca2: DUP3
00002ca3: ISZERO
00002ca4: PUSH2 0x2d04
00002ca7: JUMPI
00002ca8: PUSH1 0x40
00002caa: DUP1
00002cab: MLOAD
00002cac: PUSH1 0x60
00002cae: DUP2
00002caf: ADD
00002cb0: DUP3
00002cb1: MSTORE
00002cb2: PUSH0
00002cb3: SLOAD
00002cb4: PUSH1 0x01
00002cb6: PUSH1 0x01
00002cb8: PUSH1 0xa0
00002cba: SHL
00002cbb: SUB
00002cbc: DUP2
00002cbd: AND
00002cbe: DUP3
00002cbf: MSTORE
00002cc0: PUSH1 0x01
00002cc2: PUSH1 0x01
00002cc4: PUSH1 0xd0
00002cc6: SHL
00002cc7: SUB
00002cc8: NOT
00002cc9: PUSH1 0x01
00002ccb: PUSH1 0xa0
00002ccd: SHL
00002cce: DUP3
00002ccf: DIV
00002cd0: PUSH1 0xd0
00002cd2: SWAP1
00002cd3: DUP2
00002cd4: SHL
00002cd5: DUP3
00002cd6: AND
00002cd7: PUSH1 0x20
00002cd9: DUP6
00002cda: ADD
00002cdb: MSTORE
00002cdc: PUSH1 0x01
00002cde: PUSH1 0xd0
00002ce0: SHL
00002ce1: SWAP1
00002ce2: SWAP3
00002ce3: DIV
00002ce4: SWAP1
00002ce5: SWAP2
00002ce6: SHL
00002ce7: AND
00002ce8: SWAP2
00002ce9: DUP2
00002cea: ADD
00002ceb: SWAP2
00002cec: SWAP1
00002ced: SWAP2
00002cee: MSTORE
00002cef: PUSH2 0x2cf7
00002cf2: SWAP1
00002cf3: PUSH2 0x39ce
00002cf6: JUMP
00002cf7: JUMPDEST
00002cf8: PUSH2 0x2d01
00002cfb: SWAP1
00002cfc: DUP3
00002cfd: PUSH2 0x54d7
00002d00: JUMP
00002d01: JUMPDEST
00002d02: SWAP1
00002d03: POP
00002d04: JUMPDEST
00002d05: PUSH1 0x03
00002d07: SLOAD
00002d08: PUSH0
00002d09: SWAP1
00002d0a: PUSH2 0x2d28
00002d0d: SWAP1
00002d0e: DUP4
00002d0f: SWAP1
00002d10: PUSH1 0x01
00002d12: PUSH1 0x01
00002d14: PUSH1 0x40
00002d16: SHL
00002d17: SUB
00002d18: DUP1
00002d19: DUP10
00002d1a: AND
00002d1b: SWAP2
00002d1c: PUSH1 0x01
00002d1e: PUSH1 0x80
00002d20: SHL
00002d21: SWAP1
00002d22: DIV
00002d23: AND
00002d24: PUSH2 0x3af5
00002d27: JUMP
00002d28: JUMPDEST
00002d29: PUSH1 0x01
00002d2b: PUSH1 0x01
00002d2d: PUSH1 0x80
00002d2f: SHL
00002d30: SUB
00002d31: NOT
00002d32: DUP8
00002d33: AND
00002d34: PUSH0
00002d35: SWAP1
00002d36: DUP2
00002d37: MSTORE
00002d38: PUSH1 0x08
00002d3a: PUSH1 0x20
00002d3c: MSTORE
00002d3d: PUSH1 0x40
00002d3f: SWAP1
00002d40: KECCAK256
00002d41: SLOAD
00002d42: SWAP1
00002d43: SWAP2
00002d44: POP
00002d45: DUP1
00002d46: DUP3
00002d47: LT
00002d48: ISZERO
00002d49: PUSH2 0x2d57
00002d4c: JUMPI
00002d4d: PUSH0
00002d4e: SWAP4
00002d4f: POP
00002d50: POP
00002d51: POP
00002d52: POP
00002d53: PUSH2 0x1cb2
00002d56: JUMP
00002d57: JUMPDEST
00002d58: PUSH2 0x2d61
00002d5b: DUP2
00002d5c: DUP4
00002d5d: PUSH2 0x56ad
00002d60: JUMP
00002d61: JUMPDEST
00002d62: SWAP8
00002d63: SWAP7
00002d64: POP
00002d65: POP
00002d66: POP
00002d67: POP
00002d68: POP
00002d69: POP
00002d6a: POP
00002d6b: JUMP
00002d6c: JUMPDEST
00002d6d: PUSH0
00002d6e: PUSH0
00002d6f: DUP1
00002d70: MLOAD
00002d71: PUSH1 0x20
00002d73: PUSH2 0x5a7e
00002d76: DUP4
00002d77: CODECOPY
00002d78: DUP2
00002d79: MLOAD
00002d7a: SWAP2
00002d7b: MSTORE
00002d7c: DUP2
00002d7d: PUSH2 0x2d86
00002d80: DUP6
00002d81: DUP6
00002d82: PUSH2 0x3bb4
00002d85: JUMP
00002d86: JUMPDEST
00002d87: SWAP1
00002d88: POP
00002d89: DUP1
00002d8a: ISZERO
00002d8b: PUSH2 0x1919
00002d8e: JUMPI
00002d8f: PUSH0
00002d90: DUP6
00002d91: DUP2
00002d92: MSTORE
00002d93: PUSH1 0x20
00002d95: DUP4
00002d96: SWAP1
00002d97: MSTORE
00002d98: PUSH1 0x40
00002d9a: SWAP1
00002d9b: KECCAK256
00002d9c: PUSH2 0x2454
00002d9f: SWAP1
00002da0: DUP6
00002da1: PUSH2 0x3c2d
00002da4: JUMP
00002da5: JUMPDEST
00002da6: DUP1
00002da7: MLOAD
00002da8: PUSH1 0x01
00002daa: PUSH1 0x01
00002dac: PUSH1 0xa0
00002dae: SHL
00002daf: SUB
00002db0: AND
00002db1: PUSH2 0x2db7
00002db4: JUMPI
00002db5: POP
00002db6: JUMP
00002db7: JUMPDEST
00002db8: PUSH1 0x40
00002dba: DUP2
00002dbb: ADD
00002dbc: MLOAD
00002dbd: PUSH1 0x01
00002dbf: PUSH1 0x01
00002dc1: PUSH1 0xd0
00002dc3: SHL
00002dc4: SUB
00002dc5: NOT
00002dc6: AND
00002dc7: PUSH6 0x7bb7577aaf57
00002dce: PUSH1 0xd1
00002dd0: SHL
00002dd1: ADD
00002dd2: PUSH2 0x2e8f
00002dd5: JUMPI
00002dd6: DUP1
00002dd7: PUSH0
00002dd8: ADD
00002dd9: MLOAD
00002dda: PUSH1 0x01
00002ddc: PUSH1 0x01
00002dde: PUSH1 0xa0
00002de0: SHL
00002de1: SUB
00002de2: AND
00002de3: PUSH4 0x86d1a69f
00002de8: PUSH1 0x40
00002dea: MLOAD
00002deb: DUP2
00002dec: PUSH4 0xffffffff
00002df1: AND
00002df2: PUSH1 0xe0
00002df4: SHL
00002df5: DUP2
00002df6: MSTORE
00002df7: PUSH1 0x04
00002df9: ADD
00002dfa: PUSH0
00002dfb: PUSH1 0x40
00002dfd: MLOAD
00002dfe: DUP1
00002dff: DUP4
00002e00: SUB
00002e01: DUP2
00002e02: PUSH0
00002e03: DUP8
00002e04: DUP1
00002e05: EXTCODESIZE
00002e06: ISZERO
00002e07: DUP1
00002e08: ISZERO
00002e09: PUSH2 0x2e10
00002e0c: JUMPI
00002e0d: PUSH0
00002e0e: DUP1
00002e0f: REVERT
00002e10: JUMPDEST
00002e11: POP
00002e12: GAS
00002e13: CALL
00002e14: SWAP3
00002e15: POP
00002e16: POP
00002e17: POP
00002e18: DUP1
00002e19: ISZERO
00002e1a: PUSH2 0x2e21
00002e1d: JUMPI
00002e1e: POP
00002e1f: PUSH1 0x01
00002e21: JUMPDEST
00002e22: PUSH2 0x1848
00002e25: JUMPI
00002e26: RETURNDATASIZE
00002e27: DUP1
00002e28: DUP1
00002e29: ISZERO
00002e2a: PUSH2 0x2e4e
00002e2d: JUMPI
00002e2e: PUSH1 0x40
00002e30: MLOAD
00002e31: SWAP2
00002e32: POP
00002e33: PUSH1 0x1f
00002e35: NOT
00002e36: PUSH1 0x3f
00002e38: RETURNDATASIZE
00002e39: ADD
00002e3a: AND
00002e3b: DUP3
00002e3c: ADD
00002e3d: PUSH1 0x40
00002e3f: MSTORE
00002e40: RETURNDATASIZE
00002e41: DUP3
00002e42: MSTORE
00002e43: RETURNDATASIZE
00002e44: PUSH0
00002e45: PUSH1 0x20
00002e47: DUP5
00002e48: ADD
00002e49: RETURNDATACOPY
00002e4a: PUSH2 0x2e53
00002e4d: JUMP
00002e4e: JUMPDEST
00002e4f: PUSH1 0x60
00002e51: SWAP2
00002e52: POP
00002e53: JUMPDEST
00002e54: POP
00002e55: PUSH32 0xd4dda53af3bad1326f8c4a3308709c8621ff0cf0691b7a3052e2fcda2f9141db
00002e76: DUP2
00002e77: PUSH1 0x40
00002e79: MLOAD
00002e7a: PUSH2 0x2e83
00002e7d: SWAP2
00002e7e: SWAP1
00002e7f: PUSH2 0x56d7
00002e82: JUMP
00002e83: JUMPDEST
00002e84: PUSH1 0x40
00002e86: MLOAD
00002e87: DUP1
00002e88: SWAP2
00002e89: SUB
00002e8a: SWAP1
00002e8b: LOG1
00002e8c: POP
00002e8d: POP
00002e8e: JUMP
00002e8f: JUMPDEST
00002e90: PUSH1 0x40
00002e92: DUP2
00002e93: ADD
00002e94: MLOAD
00002e95: PUSH1 0x01
00002e97: PUSH1 0x01
00002e99: PUSH1 0xd0
00002e9b: SHL
00002e9c: SUB
00002e9d: NOT
00002e9e: AND
00002e9f: PUSH6 0xb275294801e5
00002ea6: PUSH1 0xd0
00002ea8: SHL
00002ea9: ADD
00002eaa: PUSH2 0x2f53
00002ead: JUMPI
00002eae: DUP1
00002eaf: MLOAD
00002eb0: PUSH1 0x40
00002eb2: MLOAD
00002eb3: PUSH4 0x70a08231
00002eb8: PUSH1 0xe0
00002eba: SHL
00002ebb: DUP2
00002ebc: MSTORE
00002ebd: ADDRESS
00002ebe: PUSH1 0x04
00002ec0: DUP3
00002ec1: ADD
00002ec2: MSTORE
00002ec3: PUSH1 0x01
00002ec5: PUSH1 0x01
00002ec7: PUSH1 0xa0
00002ec9: SHL
00002eca: SUB
00002ecb: SWAP1
00002ecc: SWAP2
00002ecd: AND
00002ece: SWAP1
00002ecf: PUSH4 0x11bcc81e
00002ed4: SWAP1
00002ed5: DUP3
00002ed6: SWAP1
00002ed7: PUSH4 0x70a08231
00002edc: SWAP1
00002edd: PUSH1 0x24
00002edf: ADD
00002ee0: PUSH1 0x20
00002ee2: PUSH1 0x40
00002ee4: MLOAD
00002ee5: DUP1
00002ee6: DUP4
00002ee7: SUB
00002ee8: DUP2
00002ee9: DUP7
00002eea: GAS
00002eeb: STATICCALL
00002eec: ISZERO
00002eed: DUP1
00002eee: ISZERO
00002eef: PUSH2 0x2efa
00002ef2: JUMPI
00002ef3: RETURNDATASIZE
00002ef4: PUSH0
00002ef5: DUP1
00002ef6: RETURNDATACOPY
00002ef7: RETURNDATASIZE
00002ef8: PUSH0
00002ef9: REVERT
00002efa: JUMPDEST
00002efb: POP
00002efc: POP
00002efd: POP
00002efe: POP
00002eff: PUSH1 0x40
00002f01: MLOAD
00002f02: RETURNDATASIZE
00002f03: PUSH1 0x1f
00002f05: NOT
00002f06: PUSH1 0x1f
00002f08: DUP3
00002f09: ADD
00002f0a: AND
00002f0b: DUP3
00002f0c: ADD
00002f0d: DUP1
00002f0e: PUSH1 0x40
00002f10: MSTORE
00002f11: POP
00002f12: DUP2
00002f13: ADD
00002f14: SWAP1
00002f15: PUSH2 0x2f1e
00002f18: SWAP2
00002f19: SWAP1
00002f1a: PUSH2 0x56c0
00002f1d: JUMP
00002f1e: JUMPDEST
00002f1f: PUSH1 0x40
00002f21: MLOAD
00002f22: DUP3
00002f23: PUSH4 0xffffffff
00002f28: AND
00002f29: PUSH1 0xe0
00002f2b: SHL
00002f2c: DUP2
00002f2d: MSTORE
00002f2e: PUSH1 0x04
00002f30: ADD
00002f31: PUSH2 0x2f3c
00002f34: SWAP2
00002f35: DUP2
00002f36: MSTORE
00002f37: PUSH1 0x20
00002f39: ADD
00002f3a: SWAP1
00002f3b: JUMP
00002f3c: JUMPDEST
00002f3d: PUSH0
00002f3e: PUSH1 0x40
00002f40: MLOAD
00002f41: DUP1
00002f42: DUP4
00002f43: SUB
00002f44: DUP2
00002f45: PUSH0
00002f46: DUP8
00002f47: DUP1
00002f48: EXTCODESIZE
00002f49: ISZERO
00002f4a: DUP1
00002f4b: ISZERO
00002f4c: PUSH2 0x2e10
00002f4f: JUMPI
00002f50: PUSH0
00002f51: DUP1
00002f52: REVERT
00002f53: JUMPDEST
00002f54: PUSH1 0x40
00002f56: DUP1
00002f57: DUP3
00002f58: ADD
00002f59: MLOAD
00002f5a: SWAP1
00002f5b: MLOAD
00002f5c: PUSH4 0x084523c5
00002f61: PUSH1 0xe1
00002f63: SHL
00002f64: DUP2
00002f65: MSTORE
00002f66: PUSH1 0x01
00002f68: PUSH1 0x01
00002f6a: PUSH1 0xd0
00002f6c: SHL
00002f6d: SUB
00002f6e: NOT
00002f6f: SWAP1
00002f70: SWAP2
00002f71: AND
00002f72: PUSH1 0x04
00002f74: DUP3
00002f75: ADD
00002f76: MSTORE
00002f77: PUSH1 0x24
00002f79: ADD
00002f7a: PUSH2 0x14fa
00002f7d: JUMP
00002f7e: JUMPDEST
00002f7f: PUSH1 0x01
00002f81: PUSH1 0x01
00002f83: PUSH1 0x80
00002f85: SHL
00002f86: SUB
00002f87: NOT
00002f88: DUP3
00002f89: AND
00002f8a: PUSH0
00002f8b: SWAP1
00002f8c: DUP2
00002f8d: MSTORE
00002f8e: PUSH1 0x09
00002f90: PUSH1 0x20
00002f92: MSTORE
00002f93: PUSH1 0x40
00002f95: DUP2
00002f96: KECCAK256
00002f97: SLOAD
00002f98: PUSH1 0x05
00002f9a: SLOAD
00002f9b: PUSH1 0x03
00002f9d: SLOAD
00002f9e: PUSH2 0x2fb6
00002fa1: SWAP2
00002fa2: SWAP1
00002fa3: PUSH2 0xffff
00002fa6: DUP1
00002fa7: DUP8
00002fa8: AND
00002fa9: SWAP2
00002faa: PUSH1 0x01
00002fac: PUSH1 0xc0
00002fae: SHL
00002faf: SWAP1
00002fb0: DIV
00002fb1: AND
00002fb2: PUSH2 0x3af5
00002fb5: JUMP
00002fb6: JUMPDEST
00002fb7: PUSH2 0x1cb2
00002fba: SWAP2
00002fbb: SWAP1
00002fbc: PUSH2 0x56ad
00002fbf: JUMP
00002fc0: JUMPDEST
00002fc1: PUSH1 0x40
00002fc3: DUP1
00002fc4: MLOAD
00002fc5: PUSH1 0x01
00002fc7: PUSH1 0x01
00002fc9: PUSH1 0xa0
00002fcb: SHL
00002fcc: SUB
00002fcd: DUP5
00002fce: AND
00002fcf: PUSH1 0x24
00002fd1: DUP3
00002fd2: ADD
00002fd3: MSTORE
00002fd4: PUSH1 0x44
00002fd6: DUP1
00002fd7: DUP3
00002fd8: ADD
00002fd9: DUP5
00002fda: SWAP1
00002fdb: MSTORE
00002fdc: DUP3
00002fdd: MLOAD
00002fde: DUP1
00002fdf: DUP4
00002fe0: SUB
00002fe1: SWAP1
00002fe2: SWAP2
00002fe3: ADD
00002fe4: DUP2
00002fe5: MSTORE
00002fe6: PUSH1 0x64
00002fe8: SWAP1
00002fe9: SWAP2
00002fea: ADD
00002feb: SWAP1
00002fec: SWAP2
00002fed: MSTORE
00002fee: PUSH1 0x20
00002ff0: DUP2
00002ff1: ADD
00002ff2: DUP1
00002ff3: MLOAD
00002ff4: PUSH1 0x01
00002ff6: PUSH1 0x01
00002ff8: PUSH1 0xe0
00002ffa: SHL
00002ffb: SUB
00002ffc: AND
00002ffd: PUSH4 0xa9059cbb
00003002: PUSH1 0xe0
00003004: SHL
00003005: OR
00003006: SWAP1
00003007: MSTORE
00003008: PUSH2 0x102b
0000300b: SWAP1
0000300c: DUP5
0000300d: SWAP1
0000300e: PUSH2 0x3c41
00003011: JUMP
00003012: JUMPDEST
00003013: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102
00003034: DUP1
00003035: SLOAD
00003036: PUSH1 0x60
00003038: SWAP2
00003039: PUSH0
0000303a: DUP1
0000303b: MLOAD
0000303c: PUSH1 0x20
0000303e: PUSH2 0x5a9e
00003041: DUP4
00003042: CODECOPY
00003043: DUP2
00003044: MLOAD
00003045: SWAP2
00003046: MSTORE
00003047: SWAP2
00003048: PUSH2 0x3050
0000304b: SWAP1
0000304c: PUSH2 0x56e9
0000304f: JUMP
00003050: JUMPDEST
00003051: DUP1
00003052: PUSH1 0x1f
00003054: ADD
00003055: PUSH1 0x20
00003057: DUP1
00003058: SWAP2
00003059: DIV
0000305a: MUL
0000305b: PUSH1 0x20
0000305d: ADD
0000305e: PUSH1 0x40
00003060: MLOAD
00003061: SWAP1
00003062: DUP2
00003063: ADD
00003064: PUSH1 0x40
00003066: MSTORE
00003067: DUP1
00003068: SWAP3
00003069: SWAP2
0000306a: SWAP1
0000306b: DUP2
0000306c: DUP2
0000306d: MSTORE
0000306e: PUSH1 0x20
00003070: ADD
00003071: DUP3
00003072: DUP1
00003073: SLOAD
00003074: PUSH2 0x307c
00003077: SWAP1
00003078: PUSH2 0x56e9
0000307b: JUMP
0000307c: JUMPDEST
0000307d: DUP1
0000307e: ISZERO
0000307f: PUSH2 0x30c7
00003082: JUMPI
00003083: DUP1
00003084: PUSH1 0x1f
00003086: LT
00003087: PUSH2 0x309e
0000308a: JUMPI
0000308b: PUSH2 0x0100
0000308e: DUP1
0000308f: DUP4
00003090: SLOAD
00003091: DIV
00003092: MUL
00003093: DUP4
00003094: MSTORE
00003095: SWAP2
00003096: PUSH1 0x20
00003098: ADD
00003099: SWAP2
0000309a: PUSH2 0x30c7
0000309d: JUMP
0000309e: JUMPDEST
0000309f: DUP3
000030a0: ADD
000030a1: SWAP2
000030a2: SWAP1
000030a3: PUSH0
000030a4: MSTORE
000030a5: PUSH1 0x20
000030a7: PUSH0
000030a8: KECCAK256
000030a9: SWAP1
000030aa: JUMPDEST
000030ab: DUP2
000030ac: SLOAD
000030ad: DUP2
000030ae: MSTORE
000030af: SWAP1
000030b0: PUSH1 0x01
000030b2: ADD
000030b3: SWAP1
000030b4: PUSH1 0x20
000030b6: ADD
000030b7: DUP1
000030b8: DUP4
000030b9: GT
000030ba: PUSH2 0x30aa
000030bd: JUMPI
000030be: DUP3
000030bf: SWAP1
000030c0: SUB
000030c1: PUSH1 0x1f
000030c3: AND
000030c4: DUP3
000030c5: ADD
000030c6: SWAP2
000030c7: JUMPDEST
000030c8: POP
000030c9: POP
000030ca: POP
000030cb: POP
000030cc: POP
000030cd: SWAP2
000030ce: POP
000030cf: POP
000030d0: SWAP1
000030d1: JUMP
000030d2: JUMPDEST
000030d3: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103
000030f4: DUP1
000030f5: SLOAD
000030f6: PUSH1 0x60
000030f8: SWAP2
000030f9: PUSH0
000030fa: DUP1
000030fb: MLOAD
000030fc: PUSH1 0x20
000030fe: PUSH2 0x5a9e
00003101: DUP4
00003102: CODECOPY
00003103: DUP2
00003104: MLOAD
00003105: SWAP2
00003106: MSTORE
00003107: SWAP2
00003108: PUSH2 0x3050
0000310b: SWAP1
0000310c: PUSH2 0x56e9
0000310f: JUMP
00003110: JUMPDEST
00003111: PUSH0
00003112: PUSH2 0x1cb2
00003115: DUP4
00003116: DUP4
00003117: PUSH2 0x3ca2
0000311a: JUMP
0000311b: JUMPDEST
0000311c: PUSH0
0000311d: DUP4
0000311e: ISZERO
0000311f: PUSH2 0x3129
00003122: JUMPI
00003123: POP
00003124: PUSH0
00003125: PUSH2 0x0fef
00003128: JUMP
00003129: JUMPDEST
0000312a: PUSH0
0000312b: PUSH2 0x3143
0000312e: DUP5
0000312f: PUSH2 0x313d
00003132: CALLDATASIZE
00003133: DUP7
00003134: SWAP1
00003135: SUB
00003136: DUP7
00003137: ADD
00003138: DUP7
00003139: PUSH2 0x5767
0000313c: JUMP
0000313d: JUMPDEST
0000313e: SWAP1
0000313f: PUSH2 0x3cc8
00003142: JUMP
00003143: JUMPDEST
00003144: PUSH1 0x01
00003146: PUSH1 0x01
00003148: PUSH1 0x80
0000314a: SHL
0000314b: SUB
0000314c: NOT
0000314d: DUP9
0000314e: AND
0000314f: PUSH0
00003150: SWAP1
00003151: DUP2
00003152: MSTORE
00003153: PUSH1 0x08
00003155: PUSH1 0x20
00003157: MSTORE
00003158: PUSH1 0x40
0000315a: DUP2
0000315b: KECCAK256
0000315c: PUSH1 0x01
0000315e: ADD
0000315f: SLOAD
00003160: PUSH1 0x03
00003162: SLOAD
00003163: SWAP3
00003164: SWAP4
00003165: POP
00003166: SWAP1
00003167: SWAP2
00003168: PUSH2 0x318b
0000316b: SWAP2
0000316c: DUP10
0000316d: SWAP2
0000316e: PUSH1 0x01
00003170: PUSH1 0x01
00003172: PUSH1 0x40
00003174: SHL
00003175: SUB
00003176: SWAP1
00003177: SWAP2
00003178: AND
00003179: SWAP1
0000317a: DUP6
0000317b: SWAP1
0000317c: PUSH1 0x01
0000317e: PUSH1 0xc0
00003180: SHL
00003181: SWAP1
00003182: DIV
00003183: PUSH2 0xffff
00003186: AND
00003187: PUSH2 0x3cdb
0000318a: JUMP
0000318b: JUMPDEST
0000318c: SWAP1
0000318d: POP
0000318e: PUSH0
0000318f: PUSH2 0x31a7
00003192: DUP3
00003193: PUSH2 0x31a1
00003196: CALLDATASIZE
00003197: DUP9
00003198: SWAP1
00003199: SUB
0000319a: DUP9
0000319b: ADD
0000319c: DUP9
0000319d: PUSH2 0x5767
000031a0: JUMP
000031a1: JUMPDEST
000031a2: SWAP1
000031a3: PUSH2 0x3d1d
000031a6: JUMP
000031a7: JUMPDEST
000031a8: SWAP10
000031a9: SWAP9
000031aa: POP
000031ab: POP
000031ac: POP
000031ad: POP
000031ae: POP
000031af: POP
000031b0: POP
000031b1: POP
000031b2: POP
000031b3: JUMP
000031b4: JUMPDEST
000031b5: PUSH0
000031b6: PUSH2 0x0998
000031b9: DUP3
000031ba: SLOAD
000031bb: SWAP1
000031bc: JUMP
000031bd: JUMPDEST
000031be: PUSH0
000031bf: PUSH2 0x196b
000031c2: PUSH2 0x3d30
000031c5: JUMP
000031c6: JUMPDEST
000031c7: PUSH0
000031c8: DUP1
000031c9: PUSH32 0x4d9f77ff47b5a86f69f849f0468d24908e3c97653ee3cbecc5bb86ff0f7de941
000031ea: DUP5
000031eb: PUSH0
000031ec: ADD
000031ed: MLOAD
000031ee: DUP6
000031ef: PUSH1 0x20
000031f1: ADD
000031f2: MLOAD
000031f3: DUP7
000031f4: PUSH1 0x40
000031f6: ADD
000031f7: MLOAD
000031f8: DUP8
000031f9: PUSH1 0x60
000031fb: ADD
000031fc: MLOAD
000031fd: DUP9
000031fe: PUSH1 0x80
00003200: ADD
00003201: MLOAD
00003202: PUSH1 0x40
00003204: MLOAD
00003205: PUSH1 0x20
00003207: ADD
00003208: PUSH2 0x324f
0000320b: SWAP7
0000320c: SWAP6
0000320d: SWAP5
0000320e: SWAP4
0000320f: SWAP3
00003210: SWAP2
00003211: SWAP1
00003212: SWAP6
00003213: DUP7
00003214: MSTORE
00003215: PUSH1 0x01
00003217: PUSH1 0x01
00003219: PUSH1 0x80
0000321b: SHL
0000321c: SUB
0000321d: NOT
0000321e: SWAP5
0000321f: DUP6
00003220: AND
00003221: PUSH1 0x20
00003223: DUP8
00003224: ADD
00003225: MSTORE
00003226: SWAP3
00003227: SWAP1
00003228: SWAP4
00003229: AND
0000322a: PUSH1 0x40
0000322c: DUP6
0000322d: ADD
0000322e: MSTORE
0000322f: PUSH1 0x01
00003231: PUSH1 0x01
00003233: PUSH1 0xa0
00003235: SHL
00003236: SUB
00003237: AND
00003238: PUSH1 0x60
0000323a: DUP5
0000323b: ADD
0000323c: MSTORE
0000323d: PUSH1 0x80
0000323f: DUP4
00003240: ADD
00003241: SWAP2
00003242: SWAP1
00003243: SWAP2
00003244: MSTORE
00003245: PUSH1 0xa0
00003247: DUP3
00003248: ADD
00003249: MSTORE
0000324a: PUSH1 0xc0
0000324c: ADD
0000324d: SWAP1
0000324e: JUMP
0000324f: JUMPDEST
00003250: PUSH1 0x40
00003252: MLOAD
00003253: PUSH1 0x20
00003255: DUP2
00003256: DUP4
00003257: SUB
00003258: SUB
00003259: DUP2
0000325a: MSTORE
0000325b: SWAP1
0000325c: PUSH1 0x40
0000325e: MSTORE
0000325f: DUP1
00003260: MLOAD
00003261: SWAP1
00003262: PUSH1 0x20
00003264: ADD
00003265: KECCAK256
00003266: SWAP1
00003267: POP
00003268: PUSH2 0x1919
0000326b: DUP4
0000326c: DUP3
0000326d: PUSH1 0x40
0000326f: MLOAD
00003270: PUSH2 0x1901
00003273: PUSH1 0xf0
00003275: SHL
00003276: DUP2
00003277: MSTORE
00003278: PUSH1 0x02
0000327a: DUP2
0000327b: ADD
0000327c: SWAP3
0000327d: SWAP1
0000327e: SWAP3
0000327f: MSTORE
00003280: PUSH1 0x22
00003282: DUP3
00003283: ADD
00003284: MSTORE
00003285: PUSH1 0x42
00003287: SWAP1
00003288: KECCAK256
00003289: SWAP1
0000328a: JUMP
0000328b: JUMPDEST
0000328c: PUSH0
0000328d: DUP1
0000328e: PUSH0
0000328f: PUSH2 0x3298
00003292: DUP6
00003293: DUP6
00003294: PUSH2 0x3da3
00003297: JUMP
00003298: JUMPDEST
00003299: POP
0000329a: SWAP1
0000329b: SWAP3
0000329c: POP
0000329d: SWAP1
0000329e: POP
0000329f: PUSH0
000032a0: DUP2
000032a1: PUSH1 0x03
000032a3: DUP2
000032a4: GT
000032a5: ISZERO
000032a6: PUSH2 0x32b1
000032a9: JUMPI
000032aa: PUSH2 0x32b1
000032ad: PUSH2 0x5781
000032b0: JUMP
000032b1: JUMPDEST
000032b2: EQ
000032b3: DUP1
000032b4: ISZERO
000032b5: PUSH2 0x32cf
000032b8: JUMPI
000032b9: POP
000032ba: DUP6
000032bb: PUSH1 0x01
000032bd: PUSH1 0x01
000032bf: PUSH1 0xa0
000032c1: SHL
000032c2: SUB
000032c3: AND
000032c4: DUP3
000032c5: PUSH1 0x01
000032c7: PUSH1 0x01
000032c9: PUSH1 0xa0
000032cb: SHL
000032cc: SUB
000032cd: AND
000032ce: EQ
000032cf: JUMPDEST
000032d0: DUP1
000032d1: PUSH2 0x32e0
000032d4: JUMPI
000032d5: POP
000032d6: PUSH2 0x32e0
000032d9: DUP7
000032da: DUP7
000032db: DUP7
000032dc: PUSH2 0x3dec
000032df: JUMP
000032e0: JUMPDEST
000032e1: SWAP7
000032e2: SWAP6
000032e3: POP
000032e4: POP
000032e5: POP
000032e6: POP
000032e7: POP
000032e8: POP
000032e9: JUMP
000032ea: JUMPDEST
000032eb: PUSH0
000032ec: DUP1
000032ed: PUSH0
000032ee: DUP1
000032ef: PUSH2 0x32f8
000032f2: DUP7
000032f3: DUP7
000032f4: PUSH2 0x3da3
000032f7: JUMP
000032f8: JUMPDEST
000032f9: SWAP3
000032fa: POP
000032fb: SWAP3
000032fc: POP
000032fd: SWAP3
000032fe: POP
000032ff: PUSH2 0x3308
00003302: DUP3
00003303: DUP3
00003304: PUSH2 0x3ec2
00003307: JUMP
00003308: JUMPDEST
00003309: POP
0000330a: SWAP1
0000330b: SWAP5
0000330c: SWAP4
0000330d: POP
0000330e: POP
0000330f: POP
00003310: POP
00003311: JUMP
00003312: JUMPDEST
00003313: PUSH1 0x03
00003315: SLOAD
00003316: PUSH1 0x80
00003318: SHL
00003319: PUSH1 0x01
0000331b: PUSH1 0x01
0000331d: PUSH1 0x80
0000331f: SHL
00003320: SUB
00003321: NOT
00003322: AND
00003323: PUSH2 0x332f
00003326: PUSH1 0x20
00003328: DUP11
00003329: ADD
0000332a: DUP11
0000332b: PUSH2 0x5308
0000332e: JUMP
0000332f: JUMPDEST
00003330: PUSH1 0x01
00003332: PUSH1 0x01
00003334: PUSH1 0x80
00003336: SHL
00003337: SUB
00003338: NOT
00003339: AND
0000333a: EQ
0000333b: PUSH2 0x334b
0000333e: JUMPI
0000333f: PUSH2 0x1f51
00003342: PUSH1 0x20
00003344: DUP10
00003345: ADD
00003346: DUP10
00003347: PUSH2 0x5308
0000334a: JUMP
0000334b: JUMPDEST
0000334c: DUP8
0000334d: PUSH1 0xc0
0000334f: ADD
00003350: CALLDATALOAD
00003351: TIMESTAMP
00003352: LT
00003353: PUSH2 0x3375
00003356: JUMPI
00003357: PUSH1 0x40
00003359: MLOAD
0000335a: PUSH4 0x0f5f3b23
0000335f: PUSH1 0xe4
00003361: SHL
00003362: DUP2
00003363: MSTORE
00003364: PUSH1 0xc0
00003366: DUP10
00003367: ADD
00003368: CALLDATALOAD
00003369: PUSH1 0x04
0000336b: DUP3
0000336c: ADD
0000336d: MSTORE
0000336e: PUSH1 0x24
00003370: ADD
00003371: PUSH2 0x14fa
00003374: JUMP
00003375: JUMPDEST
00003376: PUSH0
00003377: PUSH2 0x338a
0000337a: DUP5
0000337b: PUSH1 0x40
0000337d: MLOAD
0000337e: PUSH1 0x20
00003380: ADD
00003381: PUSH2 0x27e8
00003384: SWAP2
00003385: SWAP1
00003386: PUSH2 0x5795
00003389: JUMP
0000338a: JUMPDEST
0000338b: SWAP1
0000338c: POP
0000338d: PUSH0
0000338e: PUSH2 0x3398
00003391: DUP5
00003392: DUP5
00003393: DUP5
00003394: PUSH2 0x3f7a
00003397: JUMP
00003398: JUMPDEST
00003399: SWAP1
0000339a: POP
0000339b: PUSH1 0x0a
0000339d: SLOAD
0000339e: DUP2
0000339f: EQ
000033a0: PUSH2 0x33d1
000033a3: JUMPI
000033a4: PUSH1 0x0a
000033a6: SLOAD
000033a7: PUSH1 0x40
000033a9: MLOAD
000033aa: PUSH4 0x117cd02b
000033af: PUSH1 0xe0
000033b1: SHL
000033b2: DUP2
000033b3: MSTORE
000033b4: PUSH1 0x04
000033b6: DUP2
000033b7: ADD
000033b8: DUP5
000033b9: SWAP1
000033ba: MSTORE
000033bb: PUSH1 0x24
000033bd: DUP2
000033be: ADD
000033bf: DUP4
000033c0: SWAP1
000033c1: MSTORE
000033c2: PUSH1 0x44
000033c4: DUP2
000033c5: ADD
000033c6: SWAP2
000033c7: SWAP1
000033c8: SWAP2
000033c9: MSTORE
000033ca: PUSH1 0x64
000033cc: ADD
000033cd: PUSH2 0x14fa
000033d0: JUMP
000033d1: JUMPDEST
000033d2: POP
000033d3: PUSH0
000033d4: SWAP1
000033d5: POP
000033d6: PUSH2 0x33f4
000033d9: PUSH2 0x33e7
000033dc: CALLDATASIZE
000033dd: DUP12
000033de: SWAP1
000033df: SUB
000033e0: DUP12
000033e1: ADD
000033e2: DUP12
000033e3: PUSH2 0x581a
000033e6: JUMP
000033e7: JUMPDEST
000033e8: PUSH2 0x33ef
000033eb: PUSH2 0x31bd
000033ee: JUMP
000033ef: JUMPDEST
000033f0: PUSH2 0x3fb2
000033f3: JUMP
000033f4: JUMPDEST
000033f5: PUSH1 0x02
000033f7: SLOAD
000033f8: SWAP1
000033f9: SWAP2
000033fa: POP
000033fb: PUSH1 0x01
000033fd: PUSH1 0xa8
000033ff: SHL
00003400: SWAP1
00003401: DIV
00003402: PUSH1 0xff
00003404: AND
00003405: ISZERO
00003406: DUP1
00003407: ISZERO
00003408: PUSH2 0x345d
0000340b: JUMPI
0000340c: POP
0000340d: PUSH2 0x345b
00003410: PUSH2 0x341f
00003413: PUSH1 0x40
00003415: DUP7
00003416: ADD
00003417: PUSH1 0x20
00003419: DUP8
0000341a: ADD
0000341b: PUSH2 0x4e39
0000341e: JUMP
0000341f: JUMPDEST
00003420: DUP3
00003421: DUP11
00003422: DUP11
00003423: DUP1
00003424: DUP1
00003425: PUSH1 0x1f
00003427: ADD
00003428: PUSH1 0x20
0000342a: DUP1
0000342b: SWAP2
0000342c: DIV
0000342d: MUL
0000342e: PUSH1 0x20
00003430: ADD
00003431: PUSH1 0x40
00003433: MLOAD
00003434: SWAP1
00003435: DUP2
00003436: ADD
00003437: PUSH1 0x40
00003439: MSTORE
0000343a: DUP1
0000343b: SWAP4
0000343c: SWAP3
0000343d: SWAP2
0000343e: SWAP1
0000343f: DUP2
00003440: DUP2
00003441: MSTORE
00003442: PUSH1 0x20
00003444: ADD
00003445: DUP4
00003446: DUP4
00003447: DUP1
00003448: DUP3
00003449: DUP5
0000344a: CALLDATACOPY
0000344b: PUSH0
0000344c: SWAP3
0000344d: ADD
0000344e: SWAP2
0000344f: SWAP1
00003450: SWAP2
00003451: MSTORE
00003452: POP
00003453: PUSH2 0x328b
00003456: SWAP3
00003457: POP
00003458: POP
00003459: POP
0000345a: JUMP
0000345b: JUMPDEST
0000345c: ISZERO
0000345d: JUMPDEST
0000345e: ISZERO
0000345f: PUSH2 0x34e1
00003462: JUMPI
00003463: PUSH0
00003464: PUSH2 0x34a2
00003467: DUP3
00003468: DUP11
00003469: DUP11
0000346a: DUP1
0000346b: DUP1
0000346c: PUSH1 0x1f
0000346e: ADD
0000346f: PUSH1 0x20
00003471: DUP1
00003472: SWAP2
00003473: DIV
00003474: MUL
00003475: PUSH1 0x20
00003477: ADD
00003478: PUSH1 0x40
0000347a: MLOAD
0000347b: SWAP1
0000347c: DUP2
0000347d: ADD
0000347e: PUSH1 0x40
00003480: MSTORE
00003481: DUP1
00003482: SWAP4
00003483: SWAP3
00003484: SWAP2
00003485: SWAP1
00003486: DUP2
00003487: DUP2
00003488: MSTORE
00003489: PUSH1 0x20
0000348b: ADD
0000348c: DUP4
0000348d: DUP4
0000348e: DUP1
0000348f: DUP3
00003490: DUP5
00003491: CALLDATACOPY
00003492: PUSH0
00003493: SWAP3
00003494: ADD
00003495: SWAP2
00003496: SWAP1
00003497: SWAP2
00003498: MSTORE
00003499: POP
0000349a: PUSH2 0x32ea
0000349d: SWAP3
0000349e: POP
0000349f: POP
000034a0: POP
000034a1: JUMP
000034a2: JUMPDEST
000034a3: SWAP1
000034a4: POP
000034a5: DUP1
000034a6: PUSH2 0x34b5
000034a9: PUSH1 0x40
000034ab: DUP8
000034ac: ADD
000034ad: PUSH1 0x20
000034af: DUP9
000034b0: ADD
000034b1: PUSH2 0x4e39
000034b4: JUMP
000034b5: JUMPDEST
000034b6: PUSH1 0x40
000034b8: MLOAD
000034b9: PUSH4 0x1fb7a3a3
000034be: PUSH1 0xe0
000034c0: SHL
000034c1: DUP2
000034c2: MSTORE
000034c3: PUSH1 0x01
000034c5: PUSH1 0x01
000034c7: PUSH1 0xa0
000034c9: SHL
000034ca: SUB
000034cb: SWAP3
000034cc: DUP4
000034cd: AND
000034ce: PUSH1 0x04
000034d0: DUP3
000034d1: ADD
000034d2: MSTORE
000034d3: SWAP2
000034d4: AND
000034d5: PUSH1 0x24
000034d7: DUP3
000034d8: ADD
000034d9: MSTORE
000034da: PUSH1 0x44
000034dc: ADD
000034dd: PUSH2 0x14fa
000034e0: JUMP
000034e1: JUMPDEST
000034e2: PUSH0
000034e3: PUSH2 0x3521
000034e6: DUP3
000034e7: DUP9
000034e8: DUP9
000034e9: DUP1
000034ea: DUP1
000034eb: PUSH1 0x1f
000034ed: ADD
000034ee: PUSH1 0x20
000034f0: DUP1
000034f1: SWAP2
000034f2: DIV
000034f3: MUL
000034f4: PUSH1 0x20
000034f6: ADD
000034f7: PUSH1 0x40
000034f9: MLOAD
000034fa: SWAP1
000034fb: DUP2
000034fc: ADD
000034fd: PUSH1 0x40
000034ff: MSTORE
00003500: DUP1
00003501: SWAP4
00003502: SWAP3
00003503: SWAP2
00003504: SWAP1
00003505: DUP2
00003506: DUP2
00003507: MSTORE
00003508: PUSH1 0x20
0000350a: ADD
0000350b: DUP4
0000350c: DUP4
0000350d: DUP1
0000350e: DUP3
0000350f: DUP5
00003510: CALLDATACOPY
00003511: PUSH0
00003512: SWAP3
00003513: ADD
00003514: SWAP2
00003515: SWAP1
00003516: SWAP2
00003517: MSTORE
00003518: POP
00003519: PUSH2 0x32ea
0000351c: SWAP3
0000351d: POP
0000351e: POP
0000351f: POP
00003520: JUMP
00003521: JUMPDEST
00003522: SWAP1
00003523: POP
00003524: PUSH2 0x353a
00003527: PUSH0
00003528: DUP1
00003529: MLOAD
0000352a: PUSH1 0x20
0000352c: PUSH2 0x5afe
0000352f: DUP4
00003530: CODECOPY
00003531: DUP2
00003532: MLOAD
00003533: SWAP2
00003534: MSTORE
00003535: DUP3
00003536: PUSH2 0x1921
00003539: JUMP
0000353a: JUMPDEST
0000353b: PUSH2 0x3562
0000353e: JUMPI
0000353f: PUSH1 0x40
00003541: MLOAD
00003542: PUSH4 0x01120d51
00003547: PUSH1 0xe3
00003549: SHL
0000354a: DUP2
0000354b: MSTORE
0000354c: PUSH1 0x01
0000354e: PUSH1 0x01
00003550: PUSH1 0xa0
00003552: SHL
00003553: SUB
00003554: DUP3
00003555: AND
00003556: PUSH1 0x04
00003558: DUP3
00003559: ADD
0000355a: MSTORE
0000355b: PUSH1 0x24
0000355d: ADD
0000355e: PUSH2 0x14fa
00003561: JUMP
00003562: JUMPDEST
00003563: POP
00003564: PUSH0
00003565: SWAP1
00003566: POP
00003567: PUSH1 0x08
00003569: DUP2
0000356a: PUSH2 0x3579
0000356d: PUSH1 0x40
0000356f: DUP13
00003570: ADD
00003571: PUSH1 0x20
00003573: DUP14
00003574: ADD
00003575: PUSH2 0x5308
00003578: JUMP
00003579: JUMPDEST
0000357a: PUSH1 0x01
0000357c: PUSH1 0x01
0000357e: PUSH1 0x80
00003580: SHL
00003581: SUB
00003582: NOT
00003583: AND
00003584: PUSH1 0x01
00003586: PUSH1 0x01
00003588: PUSH1 0x80
0000358a: SHL
0000358b: SUB
0000358c: NOT
0000358d: AND
0000358e: DUP2
0000358f: MSTORE
00003590: PUSH1 0x20
00003592: ADD
00003593: SWAP1
00003594: DUP2
00003595: MSTORE
00003596: PUSH1 0x20
00003598: ADD
00003599: PUSH0
0000359a: KECCAK256
0000359b: SWAP1
0000359c: POP
0000359d: PUSH0
0000359e: PUSH2 0x35c9
000035a1: DUP11
000035a2: PUSH1 0x20
000035a4: ADD
000035a5: PUSH1 0x20
000035a7: DUP2
000035a8: ADD
000035a9: SWAP1
000035aa: PUSH2 0x35b3
000035ad: SWAP2
000035ae: SWAP1
000035af: PUSH2 0x5308
000035b2: JUMP
000035b3: JUMPDEST
000035b4: PUSH2 0x35c3
000035b7: PUSH1 0x80
000035b9: DUP9
000035ba: ADD
000035bb: PUSH1 0x60
000035bd: DUP10
000035be: ADD
000035bf: PUSH2 0x533b
000035c2: JUMP
000035c3: JUMPDEST
000035c4: PUSH0
000035c5: PUSH2 0x2c0c
000035c8: JUMP
000035c9: JUMPDEST
000035ca: SWAP1
000035cb: POP
000035cc: DUP1
000035cd: DUP11
000035ce: PUSH1 0x60
000035d0: ADD
000035d1: CALLDATALOAD
000035d2: GT
000035d3: ISZERO
000035d4: PUSH2 0x35fd
000035d7: JUMPI
000035d8: PUSH1 0x40
000035da: MLOAD
000035db: PUSH4 0x72b4ba41
000035e0: PUSH1 0xe1
000035e2: SHL
000035e3: DUP2
000035e4: MSTORE
000035e5: PUSH1 0x60
000035e7: DUP12
000035e8: ADD
000035e9: CALLDATALOAD
000035ea: PUSH1 0x04
000035ec: DUP3
000035ed: ADD
000035ee: MSTORE
000035ef: PUSH1 0x24
000035f1: DUP2
000035f2: ADD
000035f3: DUP3
000035f4: SWAP1
000035f5: MSTORE
000035f6: PUSH1 0x44
000035f8: ADD
000035f9: PUSH2 0x14fa
000035fc: JUMP
000035fd: JUMPDEST
000035fe: POP
000035ff: PUSH0
00003600: PUSH2 0x3619
00003603: PUSH1 0x60
00003605: DUP12
00003606: ADD
00003607: CALLDATALOAD
00003608: PUSH2 0x313d
0000360b: CALLDATASIZE
0000360c: DUP14
0000360d: SWAP1
0000360e: SUB
0000360f: DUP14
00003610: ADD
00003611: PUSH1 0x80
00003613: DUP15
00003614: ADD
00003615: PUSH2 0x5767
00003618: JUMP
00003619: JUMPDEST
0000361a: SWAP1
0000361b: POP
0000361c: PUSH0
0000361d: PUSH2 0x3666
00003620: PUSH2 0x362f
00003623: PUSH1 0x40
00003625: DUP14
00003626: ADD
00003627: PUSH1 0x20
00003629: DUP15
0000362a: ADD
0000362b: PUSH2 0x5308
0000362e: JUMP
0000362f: JUMPDEST
00003630: PUSH2 0x363f
00003633: PUSH1 0x60
00003635: DUP10
00003636: ADD
00003637: PUSH1 0x40
00003639: DUP11
0000363a: ADD
0000363b: PUSH2 0x533b
0000363e: JUMP
0000363f: JUMPDEST
00003640: PUSH1 0x01
00003642: PUSH1 0x01
00003644: PUSH1 0x40
00003646: SHL
00003647: SUB
00003648: AND
00003649: PUSH2 0x3658
0000364c: PUSH1 0xa0
0000364e: DUP11
0000364f: ADD
00003650: PUSH1 0x80
00003652: DUP12
00003653: ADD
00003654: PUSH2 0x4cd8
00003657: JUMP
00003658: JUMPDEST
00003659: DUP15
0000365a: PUSH1 0x60
0000365c: ADD
0000365d: CALLDATALOAD
0000365e: DUP16
0000365f: PUSH1 0x80
00003661: ADD
00003662: PUSH2 0x311b
00003665: JUMP
00003666: JUMPDEST
00003667: SWAP1
00003668: POP
00003669: DUP11
0000366a: PUSH1 0x60
0000366c: ADD
0000366d: CALLDATALOAD
0000366e: DUP4
0000366f: PUSH0
00003670: ADD
00003671: PUSH0
00003672: DUP3
00003673: DUP3
00003674: SLOAD
00003675: PUSH2 0x367e
00003678: SWAP2
00003679: SWAP1
0000367a: PUSH2 0x54d7
0000367d: JUMP
0000367e: JUMPDEST
0000367f: SWAP1
00003680: SWAP2
00003681: SSTORE
00003682: POP
00003683: POP
00003684: PUSH1 0x01
00003686: DUP4
00003687: ADD
00003688: DUP1
00003689: SLOAD
0000368a: DUP4
0000368b: SWAP2
0000368c: SWAP1
0000368d: PUSH0
0000368e: SWAP1
0000368f: PUSH2 0x36a2
00003692: SWAP1
00003693: DUP5
00003694: SWAP1
00003695: PUSH1 0x01
00003697: PUSH1 0x01
00003699: PUSH1 0x40
0000369b: SHL
0000369c: SUB
0000369d: AND
0000369e: PUSH2 0x5606
000036a1: JUMP
000036a2: JUMPDEST
000036a3: SWAP3
000036a4: POP
000036a5: PUSH2 0x0100
000036a8: EXP
000036a9: DUP2
000036aa: SLOAD
000036ab: DUP2
000036ac: PUSH1 0x01
000036ae: PUSH1 0x01
000036b0: PUSH1 0x40
000036b2: SHL
000036b3: SUB
000036b4: MUL
000036b5: NOT
000036b6: AND
000036b7: SWAP1
000036b8: DUP4
000036b9: PUSH1 0x01
000036bb: PUSH1 0x01
000036bd: PUSH1 0x40
000036bf: SHL
000036c0: SUB
000036c1: AND
000036c2: MUL
000036c3: OR
000036c4: SWAP1
000036c5: SSTORE
000036c6: POP
000036c7: DUP11
000036c8: PUSH1 0x60
000036ca: ADD
000036cb: CALLDATALOAD
000036cc: PUSH1 0x04
000036ce: PUSH0
000036cf: DUP3
000036d0: DUP3
000036d1: SLOAD
000036d2: PUSH2 0x36db
000036d5: SWAP2
000036d6: SWAP1
000036d7: PUSH2 0x54d7
000036da: JUMP
000036db: JUMPDEST
000036dc: SWAP3
000036dd: POP
000036de: POP
000036df: DUP2
000036e0: SWAP1
000036e1: SSTORE
000036e2: POP
000036e3: DUP1
000036e4: PUSH1 0x05
000036e6: PUSH0
000036e7: DUP3
000036e8: DUP3
000036e9: SLOAD
000036ea: PUSH2 0x36f3
000036ed: SWAP2
000036ee: SWAP1
000036ef: PUSH2 0x54d7
000036f2: JUMP
000036f3: JUMPDEST
000036f4: SWAP1
000036f5: SWAP2
000036f6: SSTORE
000036f7: POP
000036f8: PUSH2 0x3709
000036fb: SWAP1
000036fc: POP
000036fd: PUSH1 0x60
000036ff: DUP13
00003700: ADD
00003701: PUSH1 0x40
00003703: DUP14
00003704: ADD
00003705: PUSH2 0x4e39
00003708: JUMP
00003709: JUMPDEST
0000370a: PUSH1 0x01
0000370c: PUSH1 0x01
0000370e: PUSH1 0xa0
00003710: SHL
00003711: SUB
00003712: AND
00003713: PUSH2 0x3722
00003716: PUSH1 0x40
00003718: DUP14
00003719: ADD
0000371a: PUSH1 0x20
0000371c: DUP15
0000371d: ADD
0000371e: PUSH2 0x5308
00003721: JUMP
00003722: JUMPDEST
00003723: PUSH1 0x01
00003725: PUSH1 0x01
00003727: PUSH1 0x80
00003729: SHL
0000372a: SUB
0000372b: NOT
0000372c: AND
0000372d: PUSH1 0x03
0000372f: PUSH0
00003730: SWAP1
00003731: SLOAD
00003732: SWAP1
00003733: PUSH2 0x0100
00003736: EXP
00003737: SWAP1
00003738: DIV
00003739: PUSH1 0x80
0000373b: SHL
0000373c: PUSH1 0x01
0000373e: PUSH1 0x01
00003740: PUSH1 0x80
00003742: SHL
00003743: SUB
00003744: NOT
00003745: AND
00003746: PUSH32 0xddc469e1e78b774ed8fa261ecf2cb0081b304697ade1665e57a5e2d627134375
00003767: DUP15
00003768: PUSH1 0x60
0000376a: ADD
0000376b: CALLDATALOAD
0000376c: DUP7
0000376d: DUP7
0000376e: PUSH1 0x40
00003770: MLOAD
00003771: PUSH2 0x378d
00003774: SWAP4
00003775: SWAP3
00003776: SWAP2
00003777: SWAP1
00003778: SWAP3
00003779: DUP4
0000377a: MSTORE
0000377b: PUSH1 0x20
0000377d: DUP4
0000377e: ADD
0000377f: SWAP2
00003780: SWAP1
00003781: SWAP2
00003782: MSTORE
00003783: PUSH1 0x40
00003785: DUP3
00003786: ADD
00003787: MSTORE
00003788: PUSH1 0x60
0000378a: ADD
0000378b: SWAP1
0000378c: JUMP
0000378d: JUMPDEST
0000378e: PUSH1 0x40
00003790: MLOAD
00003791: DUP1
00003792: SWAP2
00003793: SUB
00003794: SWAP1
00003795: LOG4
00003796: PUSH2 0x37c9
00003799: PUSH2 0x37a8
0000379c: PUSH1 0x60
0000379e: DUP14
0000379f: ADD
000037a0: PUSH1 0x40
000037a2: DUP15
000037a3: ADD
000037a4: PUSH2 0x4e39
000037a7: JUMP
000037a8: JUMPDEST
000037a9: PUSH2 0x37b6
000037ac: DUP4
000037ad: PUSH1 0x60
000037af: DUP16
000037b0: ADD
000037b1: CALLDATALOAD
000037b2: PUSH2 0x56ad
000037b5: JUMP
000037b6: JUMPDEST
000037b7: PUSH1 0x02
000037b9: SLOAD
000037ba: PUSH1 0x01
000037bc: PUSH1 0x01
000037be: PUSH1 0xa0
000037c0: SHL
000037c1: SUB
000037c2: AND
000037c3: SWAP2
000037c4: SWAP1
000037c5: PUSH2 0x2fc0
000037c8: JUMP
000037c9: JUMPDEST
000037ca: POP
000037cb: POP
000037cc: POP
000037cd: POP
000037ce: POP
000037cf: POP
000037d0: POP
000037d1: POP
000037d2: POP
000037d3: POP
000037d4: POP
000037d5: JUMP
000037d6: JUMPDEST
000037d7: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
000037f8: SLOAD
000037f9: PUSH1 0x01
000037fb: PUSH1 0x40
000037fd: SHL
000037fe: SWAP1
000037ff: DIV
00003800: PUSH1 0xff
00003802: AND
00003803: PUSH2 0x1080
00003806: JUMPI
00003807: PUSH1 0x40
00003809: MLOAD
0000380a: PUSH4 0x1afcd79f
0000380f: PUSH1 0xe3
00003811: SHL
00003812: DUP2
00003813: MSTORE
00003814: PUSH1 0x04
00003816: ADD
00003817: PUSH1 0x40
00003819: MLOAD
0000381a: DUP1
0000381b: SWAP2
0000381c: SUB
0000381d: SWAP1
0000381e: REVERT
0000381f: JUMPDEST
00003820: PUSH2 0x3827
00003823: PUSH2 0x37d6
00003826: JUMP
00003827: JUMPDEST
00003828: PUSH0
00003829: DUP1
0000382a: MLOAD
0000382b: PUSH1 0x20
0000382d: PUSH2 0x5a9e
00003830: DUP4
00003831: CODECOPY
00003832: DUP2
00003833: MLOAD
00003834: SWAP2
00003835: MSTORE
00003836: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102
00003857: PUSH2 0x3860
0000385a: DUP5
0000385b: DUP3
0000385c: PUSH2 0x58f7
0000385f: JUMP
00003860: JUMPDEST
00003861: POP
00003862: PUSH1 0x03
00003864: DUP2
00003865: ADD
00003866: PUSH2 0x386f
00003869: DUP4
0000386a: DUP3
0000386b: PUSH2 0x58f7
0000386e: JUMP
0000386f: JUMPDEST
00003870: POP
00003871: PUSH0
00003872: DUP1
00003873: DUP3
00003874: SSTORE
00003875: PUSH1 0x01
00003877: SWAP1
00003878: SWAP2
00003879: ADD
0000387a: SSTORE
0000387b: POP
0000387c: POP
0000387d: JUMP
0000387e: JUMPDEST
0000387f: PUSH0
00003880: PUSH0
00003881: DUP1
00003882: MLOAD
00003883: PUSH1 0x20
00003885: PUSH2 0x5b1e
00003888: DUP4
00003889: CODECOPY
0000388a: DUP2
0000388b: MLOAD
0000388c: SWAP2
0000388d: MSTORE
0000388e: PUSH2 0x3897
00003891: DUP5
00003892: DUP5
00003893: PUSH2 0x1921
00003896: JUMP
00003897: JUMPDEST
00003898: PUSH2 0x3916
0000389b: JUMPI
0000389c: PUSH0
0000389d: DUP5
0000389e: DUP2
0000389f: MSTORE
000038a0: PUSH1 0x20
000038a2: DUP3
000038a3: DUP2
000038a4: MSTORE
000038a5: PUSH1 0x40
000038a7: DUP1
000038a8: DUP4
000038a9: KECCAK256
000038aa: PUSH1 0x01
000038ac: PUSH1 0x01
000038ae: PUSH1 0xa0
000038b0: SHL
000038b1: SUB
000038b2: DUP8
000038b3: AND
000038b4: DUP5
000038b5: MSTORE
000038b6: SWAP1
000038b7: SWAP2
000038b8: MSTORE
000038b9: SWAP1
000038ba: KECCAK256
000038bb: DUP1
000038bc: SLOAD
000038bd: PUSH1 0xff
000038bf: NOT
000038c0: AND
000038c1: PUSH1 0x01
000038c3: OR
000038c4: SWAP1
000038c5: SSTORE
000038c6: PUSH2 0x38cc
000038c9: CALLER
000038ca: SWAP1
000038cb: JUMP
000038cc: JUMPDEST
000038cd: PUSH1 0x01
000038cf: PUSH1 0x01
000038d1: PUSH1 0xa0
000038d3: SHL
000038d4: SUB
000038d5: AND
000038d6: DUP4
000038d7: PUSH1 0x01
000038d9: PUSH1 0x01
000038db: PUSH1 0xa0
000038dd: SHL
000038de: SUB
000038df: AND
000038e0: DUP6
000038e1: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
00003902: PUSH1 0x40
00003904: MLOAD
00003905: PUSH1 0x40
00003907: MLOAD
00003908: DUP1
00003909: SWAP2
0000390a: SUB
0000390b: SWAP1
0000390c: LOG4
0000390d: PUSH1 0x01
0000390f: SWAP2
00003910: POP
00003911: POP
00003912: PUSH2 0x0998
00003915: JUMP
00003916: JUMPDEST
00003917: PUSH0
00003918: SWAP2
00003919: POP
0000391a: POP
0000391b: PUSH2 0x0998
0000391e: JUMP
0000391f: JUMPDEST
00003920: POP
00003921: SWAP3
00003922: SWAP2
00003923: POP
00003924: POP
00003925: JUMP
00003926: JUMPDEST
00003927: PUSH0
00003928: PUSH2 0x1cb2
0000392b: DUP4
0000392c: PUSH1 0x01
0000392e: PUSH1 0x01
00003930: PUSH1 0xa0
00003932: SHL
00003933: SUB
00003934: DUP5
00003935: AND
00003936: PUSH2 0x40d2
00003939: JUMP
0000393a: JUMPDEST
0000393b: PUSH0
0000393c: DUP2
0000393d: MLOAD
0000393e: PUSH0
0000393f: SUB
00003940: PUSH2 0x394a
00003943: JUMPI
00003944: POP
00003945: PUSH0
00003946: SWAP2
00003947: SWAP1
00003948: POP
00003949: JUMP
0000394a: JUMPDEST
0000394b: PUSH2 0x3955
0000394e: DUP3
0000394f: PUSH1 0x01
00003951: PUSH2 0x411e
00003954: JUMP
00003955: JUMPDEST
00003956: SWAP2
00003957: POP
00003958: JUMPDEST
00003959: PUSH1 0x01
0000395b: DUP3
0000395c: MLOAD
0000395d: GT
0000395e: ISZERO
0000395f: PUSH2 0x3974
00003962: JUMPI
00003963: PUSH2 0x396d
00003966: DUP3
00003967: PUSH1 0x01
00003969: PUSH2 0x411e
0000396c: JUMP
0000396d: JUMPDEST
0000396e: SWAP2
0000396f: POP
00003970: PUSH2 0x3958
00003973: JUMP
00003974: JUMPDEST
00003975: DUP2
00003976: PUSH0
00003977: DUP2
00003978: MLOAD
00003979: DUP2
0000397a: LT
0000397b: PUSH2 0x3986
0000397e: JUMPI
0000397f: PUSH2 0x3986
00003982: PUSH2 0x52f4
00003985: JUMP
00003986: JUMPDEST
00003987: PUSH1 0x20
00003989: MUL
0000398a: PUSH1 0x20
0000398c: ADD
0000398d: ADD
0000398e: MLOAD
0000398f: SWAP1
00003990: POP
00003991: SWAP2
00003992: SWAP1
00003993: POP
00003994: JUMP
00003995: JUMPDEST
00003996: PUSH2 0x399f
00003999: DUP3
0000399a: DUP3
0000399b: PUSH2 0x1921
0000399e: JUMP
0000399f: JUMPDEST
000039a0: PUSH2 0x0f1a
000039a3: JUMPI
000039a4: PUSH1 0x40
000039a6: MLOAD
000039a7: PUSH4 0xe2517d3f
000039ac: PUSH1 0xe0
000039ae: SHL
000039af: DUP2
000039b0: MSTORE
000039b1: PUSH1 0x01
000039b3: PUSH1 0x01
000039b5: PUSH1 0xa0
000039b7: SHL
000039b8: SUB
000039b9: DUP3
000039ba: AND
000039bb: PUSH1 0x04
000039bd: DUP3
000039be: ADD
000039bf: MSTORE
000039c0: PUSH1 0x24
000039c2: DUP2
000039c3: ADD
000039c4: DUP4
000039c5: SWAP1
000039c6: MSTORE
000039c7: PUSH1 0x44
000039c9: ADD
000039ca: PUSH2 0x14fa
000039cd: JUMP
000039ce: JUMPDEST
000039cf: DUP1
000039d0: MLOAD
000039d1: PUSH0
000039d2: SWAP1
000039d3: PUSH1 0x01
000039d5: PUSH1 0x01
000039d7: PUSH1 0xa0
000039d9: SHL
000039da: SUB
000039db: AND
000039dc: PUSH2 0x39e6
000039df: JUMPI
000039e0: POP
000039e1: PUSH0
000039e2: SWAP2
000039e3: SWAP1
000039e4: POP
000039e5: JUMP
000039e6: JUMPDEST
000039e7: PUSH1 0x20
000039e9: DUP3
000039ea: ADD
000039eb: MLOAD
000039ec: PUSH1 0x01
000039ee: PUSH1 0x01
000039f0: PUSH1 0xd0
000039f2: SHL
000039f3: SUB
000039f4: NOT
000039f5: AND
000039f6: PUSH6 0x7bb7577aaf57
000039fd: PUSH1 0xd1
000039ff: SHL
00003a00: ADD
00003a01: PUSH2 0x3a67
00003a04: JUMPI
00003a05: DUP2
00003a06: PUSH0
00003a07: ADD
00003a08: MLOAD
00003a09: PUSH1 0x01
00003a0b: PUSH1 0x01
00003a0d: PUSH1 0xa0
00003a0f: SHL
00003a10: SUB
00003a11: AND
00003a12: PUSH4 0xfbccedae
00003a17: PUSH1 0x40
00003a19: MLOAD
00003a1a: DUP2
00003a1b: PUSH4 0xffffffff
00003a20: AND
00003a21: PUSH1 0xe0
00003a23: SHL
00003a24: DUP2
00003a25: MSTORE
00003a26: PUSH1 0x04
00003a28: ADD
00003a29: PUSH1 0x20
00003a2b: PUSH1 0x40
00003a2d: MLOAD
00003a2e: DUP1
00003a2f: DUP4
00003a30: SUB
00003a31: DUP2
00003a32: DUP7
00003a33: GAS
00003a34: STATICCALL
00003a35: ISZERO
00003a36: DUP1
00003a37: ISZERO
00003a38: PUSH2 0x3a43
00003a3b: JUMPI
00003a3c: RETURNDATASIZE
00003a3d: PUSH0
00003a3e: DUP1
00003a3f: RETURNDATACOPY
00003a40: RETURNDATASIZE
00003a41: PUSH0
00003a42: REVERT
00003a43: JUMPDEST
00003a44: POP
00003a45: POP
00003a46: POP
00003a47: POP
00003a48: PUSH1 0x40
00003a4a: MLOAD
00003a4b: RETURNDATASIZE
00003a4c: PUSH1 0x1f
00003a4e: NOT
00003a4f: PUSH1 0x1f
00003a51: DUP3
00003a52: ADD
00003a53: AND
00003a54: DUP3
00003a55: ADD
00003a56: DUP1
00003a57: PUSH1 0x40
00003a59: MSTORE
00003a5a: POP
00003a5b: DUP2
00003a5c: ADD
00003a5d: SWAP1
00003a5e: PUSH2 0x0998
00003a61: SWAP2
00003a62: SWAP1
00003a63: PUSH2 0x56c0
00003a66: JUMP
00003a67: JUMPDEST
00003a68: PUSH1 0x20
00003a6a: DUP3
00003a6b: ADD
00003a6c: MLOAD
00003a6d: PUSH1 0x01
00003a6f: PUSH1 0x01
00003a71: PUSH1 0xd0
00003a73: SHL
00003a74: SUB
00003a75: NOT
00003a76: AND
00003a77: PUSH6 0xb275294801e5
00003a7e: PUSH1 0xd0
00003a80: SHL
00003a81: ADD
00003a82: PUSH2 0x3aca
00003a85: JUMPI
00003a86: DUP2
00003a87: MLOAD
00003a88: PUSH1 0x40
00003a8a: MLOAD
00003a8b: PUSH4 0x70a08231
00003a90: PUSH1 0xe0
00003a92: SHL
00003a93: DUP2
00003a94: MSTORE
00003a95: ADDRESS
00003a96: PUSH1 0x04
00003a98: DUP3
00003a99: ADD
00003a9a: MSTORE
00003a9b: PUSH1 0x01
00003a9d: PUSH1 0x01
00003a9f: PUSH1 0xa0
00003aa1: SHL
00003aa2: SUB
00003aa3: SWAP1
00003aa4: SWAP2
00003aa5: AND
00003aa6: SWAP1
00003aa7: PUSH4 0x70a08231
00003aac: SWAP1
00003aad: PUSH1 0x24
00003aaf: ADD
00003ab0: PUSH1 0x20
00003ab2: PUSH1 0x40
00003ab4: MLOAD
00003ab5: DUP1
00003ab6: DUP4
00003ab7: SUB
00003ab8: DUP2
00003ab9: DUP7
00003aba: GAS
00003abb: STATICCALL
00003abc: ISZERO
00003abd: DUP1
00003abe: ISZERO
00003abf: PUSH2 0x3a43
00003ac2: JUMPI
00003ac3: RETURNDATASIZE
00003ac4: PUSH0
00003ac5: DUP1
00003ac6: RETURNDATACOPY
00003ac7: RETURNDATASIZE
00003ac8: PUSH0
00003ac9: REVERT
00003aca: JUMPDEST
00003acb: PUSH1 0x20
00003acd: DUP3
00003ace: ADD
00003acf: MLOAD
00003ad0: PUSH1 0x40
00003ad2: MLOAD
00003ad3: PUSH4 0x084523c5
00003ad8: PUSH1 0xe1
00003ada: SHL
00003adb: DUP2
00003adc: MSTORE
00003add: PUSH1 0x01
00003adf: PUSH1 0x01
00003ae1: PUSH1 0xd0
00003ae3: SHL
00003ae4: SUB
00003ae5: NOT
00003ae6: SWAP1
00003ae7: SWAP2
00003ae8: AND
00003ae9: PUSH1 0x04
00003aeb: DUP3
00003aec: ADD
00003aed: MSTORE
00003aee: PUSH1 0x24
00003af0: ADD
00003af1: PUSH2 0x14fa
00003af4: JUMP
00003af5: JUMPDEST
00003af6: PUSH0
00003af7: DUP4
00003af8: DUP4
00003af9: MUL
00003afa: DUP2
00003afb: PUSH0
00003afc: NOT
00003afd: DUP6
00003afe: DUP8
00003aff: MULMOD
00003b00: DUP3
00003b01: DUP2
00003b02: LT
00003b03: DUP4
00003b04: DUP3
00003b05: SUB
00003b06: SUB
00003b07: SWAP2
00003b08: POP
00003b09: POP
00003b0a: DUP1
00003b0b: PUSH0
00003b0c: SUB
00003b0d: PUSH2 0x3b29
00003b10: JUMPI
00003b11: DUP4
00003b12: DUP3
00003b13: DUP2
00003b14: PUSH2 0x3b1f
00003b17: JUMPI
00003b18: PUSH2 0x3b1f
00003b1b: PUSH2 0x59b2
00003b1e: JUMP
00003b1f: JUMPDEST
00003b20: DIV
00003b21: SWAP3
00003b22: POP
00003b23: POP
00003b24: POP
00003b25: PUSH2 0x1cb2
00003b28: JUMP
00003b29: JUMPDEST
00003b2a: DUP1
00003b2b: DUP5
00003b2c: GT
00003b2d: PUSH2 0x3b49
00003b30: JUMPI
00003b31: PUSH1 0x40
00003b33: MLOAD
00003b34: PUSH4 0x227bc153
00003b39: PUSH1 0xe0
00003b3b: SHL
00003b3c: DUP2
00003b3d: MSTORE
00003b3e: PUSH1 0x04
00003b40: ADD
00003b41: PUSH1 0x40
00003b43: MLOAD
00003b44: DUP1
00003b45: SWAP2
00003b46: SUB
00003b47: SWAP1
00003b48: REVERT
00003b49: JUMPDEST
00003b4a: PUSH0
00003b4b: DUP5
00003b4c: DUP7
00003b4d: DUP9
00003b4e: MULMOD
00003b4f: PUSH0
00003b50: DUP7
00003b51: DUP2
00003b52: SUB
00003b53: DUP8
00003b54: AND
00003b55: SWAP7
00003b56: DUP8
00003b57: SWAP1
00003b58: DIV
00003b59: SWAP7
00003b5a: PUSH1 0x02
00003b5c: PUSH1 0x03
00003b5e: DUP10
00003b5f: MUL
00003b60: DUP2
00003b61: XOR
00003b62: DUP1
00003b63: DUP11
00003b64: MUL
00003b65: DUP3
00003b66: SUB
00003b67: MUL
00003b68: DUP1
00003b69: DUP11
00003b6a: MUL
00003b6b: DUP3
00003b6c: SUB
00003b6d: MUL
00003b6e: DUP1
00003b6f: DUP11
00003b70: MUL
00003b71: DUP3
00003b72: SUB
00003b73: MUL
00003b74: DUP1
00003b75: DUP11
00003b76: MUL
00003b77: DUP3
00003b78: SUB
00003b79: MUL
00003b7a: DUP1
00003b7b: DUP11
00003b7c: MUL
00003b7d: DUP3
00003b7e: SUB
00003b7f: MUL
00003b80: DUP1
00003b81: DUP11
00003b82: MUL
00003b83: SWAP1
00003b84: SWAP2
00003b85: SUB
00003b86: MUL
00003b87: SWAP2
00003b88: DUP2
00003b89: SWAP1
00003b8a: SUB
00003b8b: DUP2
00003b8c: SWAP1
00003b8d: DIV
00003b8e: PUSH1 0x01
00003b90: ADD
00003b91: DUP7
00003b92: DUP5
00003b93: GT
00003b94: SWAP1
00003b95: SWAP6
00003b96: SUB
00003b97: SWAP5
00003b98: SWAP1
00003b99: SWAP5
00003b9a: MUL
00003b9b: SWAP2
00003b9c: SWAP1
00003b9d: SWAP5
00003b9e: SUB
00003b9f: SWAP3
00003ba0: SWAP1
00003ba1: SWAP3
00003ba2: DIV
00003ba3: SWAP2
00003ba4: SWAP1
00003ba5: SWAP2
00003ba6: OR
00003ba7: SWAP2
00003ba8: SWAP1
00003ba9: SWAP2
00003baa: MUL
00003bab: SWAP2
00003bac: POP
00003bad: POP
00003bae: SWAP4
00003baf: SWAP3
00003bb0: POP
00003bb1: POP
00003bb2: POP
00003bb3: JUMP
00003bb4: JUMPDEST
00003bb5: PUSH0
00003bb6: PUSH0
00003bb7: DUP1
00003bb8: MLOAD
00003bb9: PUSH1 0x20
00003bbb: PUSH2 0x5b1e
00003bbe: DUP4
00003bbf: CODECOPY
00003bc0: DUP2
00003bc1: MLOAD
00003bc2: SWAP2
00003bc3: MSTORE
00003bc4: PUSH2 0x3bcd
00003bc7: DUP5
00003bc8: DUP5
00003bc9: PUSH2 0x1921
00003bcc: JUMP
00003bcd: JUMPDEST
00003bce: ISZERO
00003bcf: PUSH2 0x3916
00003bd2: JUMPI
00003bd3: PUSH0
00003bd4: DUP5
00003bd5: DUP2
00003bd6: MSTORE
00003bd7: PUSH1 0x20
00003bd9: DUP3
00003bda: DUP2
00003bdb: MSTORE
00003bdc: PUSH1 0x40
00003bde: DUP1
00003bdf: DUP4
00003be0: KECCAK256
00003be1: PUSH1 0x01
00003be3: PUSH1 0x01
00003be5: PUSH1 0xa0
00003be7: SHL
00003be8: SUB
00003be9: DUP8
00003bea: AND
00003beb: DUP1
00003bec: DUP6
00003bed: MSTORE
00003bee: SWAP3
00003bef: MSTORE
00003bf0: DUP1
00003bf1: DUP4
00003bf2: KECCAK256
00003bf3: DUP1
00003bf4: SLOAD
00003bf5: PUSH1 0xff
00003bf7: NOT
00003bf8: AND
00003bf9: SWAP1
00003bfa: SSTORE
00003bfb: MLOAD
00003bfc: CALLER
00003bfd: SWAP3
00003bfe: DUP8
00003bff: SWAP2
00003c00: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
00003c21: SWAP2
00003c22: SWAP1
00003c23: LOG4
00003c24: PUSH1 0x01
00003c26: SWAP2
00003c27: POP
00003c28: POP
00003c29: PUSH2 0x0998
00003c2c: JUMP
00003c2d: JUMPDEST
00003c2e: PUSH0
00003c2f: PUSH2 0x1cb2
00003c32: DUP4
00003c33: PUSH1 0x01
00003c35: PUSH1 0x01
00003c37: PUSH1 0xa0
00003c39: SHL
00003c3a: SUB
00003c3b: DUP5
00003c3c: AND
00003c3d: PUSH2 0x42be
00003c40: JUMP
00003c41: JUMPDEST
00003c42: PUSH0
00003c43: PUSH2 0x3c55
00003c46: PUSH1 0x01
00003c48: PUSH1 0x01
00003c4a: PUSH1 0xa0
00003c4c: SHL
00003c4d: SUB
00003c4e: DUP5
00003c4f: AND
00003c50: DUP4
00003c51: PUSH2 0x4398
00003c54: JUMP
00003c55: JUMPDEST
00003c56: SWAP1
00003c57: POP
00003c58: DUP1
00003c59: MLOAD
00003c5a: PUSH0
00003c5b: EQ
00003c5c: ISZERO
00003c5d: DUP1
00003c5e: ISZERO
00003c5f: PUSH2 0x3c79
00003c62: JUMPI
00003c63: POP
00003c64: DUP1
00003c65: DUP1
00003c66: PUSH1 0x20
00003c68: ADD
00003c69: SWAP1
00003c6a: MLOAD
00003c6b: DUP2
00003c6c: ADD
00003c6d: SWAP1
00003c6e: PUSH2 0x3c77
00003c71: SWAP2
00003c72: SWAP1
00003c73: PUSH2 0x59c6
00003c76: JUMP
00003c77: JUMPDEST
00003c78: ISZERO
00003c79: JUMPDEST
00003c7a: ISZERO
00003c7b: PUSH2 0x102b
00003c7e: JUMPI
00003c7f: PUSH1 0x40
00003c81: MLOAD
00003c82: PUSH4 0x5274afe7
00003c87: PUSH1 0xe0
00003c89: SHL
00003c8a: DUP2
00003c8b: MSTORE
00003c8c: PUSH1 0x01
00003c8e: PUSH1 0x01
00003c90: PUSH1 0xa0
00003c92: SHL
00003c93: SUB
00003c94: DUP5
00003c95: AND
00003c96: PUSH1 0x04
00003c98: DUP3
00003c99: ADD
00003c9a: MSTORE
00003c9b: PUSH1 0x24
00003c9d: ADD
00003c9e: PUSH2 0x14fa
00003ca1: JUMP
00003ca2: JUMPDEST
00003ca3: PUSH0
00003ca4: DUP3
00003ca5: PUSH0
00003ca6: ADD
00003ca7: DUP3
00003ca8: DUP2
00003ca9: SLOAD
00003caa: DUP2
00003cab: LT
00003cac: PUSH2 0x3cb7
00003caf: JUMPI
00003cb0: PUSH2 0x3cb7
00003cb3: PUSH2 0x52f4
00003cb6: JUMP
00003cb7: JUMPDEST
00003cb8: SWAP1
00003cb9: PUSH0
00003cba: MSTORE
00003cbb: PUSH1 0x20
00003cbd: PUSH0
00003cbe: KECCAK256
00003cbf: ADD
00003cc0: SLOAD
00003cc1: SWAP1
00003cc2: POP
00003cc3: SWAP3
00003cc4: SWAP2
00003cc5: POP
00003cc6: POP
00003cc7: JUMP
00003cc8: JUMPDEST
00003cc9: PUSH0
00003cca: PUSH2 0x1cb2
00003ccd: DUP3
00003cce: DUP5
00003ccf: PUSH0
00003cd0: ADD
00003cd1: MLOAD
00003cd2: DUP6
00003cd3: PUSH1 0x20
00003cd5: ADD
00003cd6: MLOAD
00003cd7: PUSH2 0x3af5
00003cda: JUMP
00003cdb: JUMPDEST
00003cdc: PUSH0
00003cdd: DUP1
00003cde: DUP5
00003cdf: DUP7
00003ce0: GT
00003ce1: PUSH2 0x3cea
00003ce4: JUMPI
00003ce5: PUSH0
00003ce6: PUSH2 0x3cf4
00003ce9: JUMP
00003cea: JUMPDEST
00003ceb: PUSH2 0x3cf4
00003cee: DUP6
00003cef: DUP8
00003cf0: PUSH2 0x56ad
00003cf3: JUMP
00003cf4: JUMPDEST
00003cf5: SWAP1
00003cf6: POP
00003cf7: PUSH0
00003cf8: DUP2
00003cf9: DUP6
00003cfa: GT
00003cfb: PUSH2 0x3d04
00003cfe: JUMPI
00003cff: PUSH0
00003d00: PUSH2 0x3d0e
00003d03: JUMP
00003d04: JUMPDEST
00003d05: PUSH2 0x3d0e
00003d08: DUP3
00003d09: DUP7
00003d0a: PUSH2 0x56ad
00003d0d: JUMP
00003d0e: JUMPDEST
00003d0f: SWAP1
00003d10: POP
00003d11: PUSH2 0x2d61
00003d14: DUP2
00003d15: DUP6
00003d16: PUSH2 0x2710
00003d19: PUSH2 0x3af5
00003d1c: JUMP
00003d1d: JUMPDEST
00003d1e: PUSH0
00003d1f: PUSH2 0x1cb2
00003d22: DUP3
00003d23: DUP5
00003d24: PUSH1 0x20
00003d26: ADD
00003d27: MLOAD
00003d28: DUP6
00003d29: PUSH0
00003d2a: ADD
00003d2b: MLOAD
00003d2c: PUSH2 0x3af5
00003d2f: JUMP
00003d30: JUMPDEST
00003d31: PUSH0
00003d32: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00003d53: PUSH2 0x3d5a
00003d56: PUSH2 0x43a5
00003d59: JUMP
00003d5a: JUMPDEST
00003d5b: PUSH2 0x3d62
00003d5e: PUSH2 0x440d
00003d61: JUMP
00003d62: JUMPDEST
00003d63: PUSH1 0x40
00003d65: DUP1
00003d66: MLOAD
00003d67: PUSH1 0x20
00003d69: DUP2
00003d6a: ADD
00003d6b: SWAP5
00003d6c: SWAP1
00003d6d: SWAP5
00003d6e: MSTORE
00003d6f: DUP4
00003d70: ADD
00003d71: SWAP2
00003d72: SWAP1
00003d73: SWAP2
00003d74: MSTORE
00003d75: PUSH1 0x60
00003d77: DUP3
00003d78: ADD
00003d79: MSTORE
00003d7a: CHAINID
00003d7b: PUSH1 0x80
00003d7d: DUP3
00003d7e: ADD
00003d7f: MSTORE
00003d80: ADDRESS
00003d81: PUSH1 0xa0
00003d83: DUP3
00003d84: ADD
00003d85: MSTORE
00003d86: PUSH1 0xc0
00003d88: ADD
00003d89: PUSH1 0x40
00003d8b: MLOAD
00003d8c: PUSH1 0x20
00003d8e: DUP2
00003d8f: DUP4
00003d90: SUB
00003d91: SUB
00003d92: DUP2
00003d93: MSTORE
00003d94: SWAP1
00003d95: PUSH1 0x40
00003d97: MSTORE
00003d98: DUP1
00003d99: MLOAD
00003d9a: SWAP1
00003d9b: PUSH1 0x20
00003d9d: ADD
00003d9e: KECCAK256
00003d9f: SWAP1
00003da0: POP
00003da1: SWAP1
00003da2: JUMP
00003da3: JUMPDEST
00003da4: PUSH0
00003da5: DUP1
00003da6: PUSH0
00003da7: DUP4
00003da8: MLOAD
00003da9: PUSH1 0x41
00003dab: SUB
00003dac: PUSH2 0x3dda
00003daf: JUMPI
00003db0: PUSH1 0x20
00003db2: DUP5
00003db3: ADD
00003db4: MLOAD
00003db5: PUSH1 0x40
00003db7: DUP6
00003db8: ADD
00003db9: MLOAD
00003dba: PUSH1 0x60
00003dbc: DUP7
00003dbd: ADD
00003dbe: MLOAD
00003dbf: PUSH0
00003dc0: BYTE
00003dc1: PUSH2 0x3dcc
00003dc4: DUP9
00003dc5: DUP3
00003dc6: DUP6
00003dc7: DUP6
00003dc8: PUSH2 0x444f
00003dcb: JUMP
00003dcc: JUMPDEST
00003dcd: SWAP6
00003dce: POP
00003dcf: SWAP6
00003dd0: POP
00003dd1: SWAP6
00003dd2: POP
00003dd3: POP
00003dd4: POP
00003dd5: POP
00003dd6: PUSH2 0x3de5
00003dd9: JUMP
00003dda: JUMPDEST
00003ddb: POP
00003ddc: POP
00003ddd: DUP2
00003dde: MLOAD
00003ddf: PUSH0
00003de0: SWAP2
00003de1: POP
00003de2: PUSH1 0x02
00003de4: SWAP1
00003de5: JUMPDEST
00003de6: SWAP3
00003de7: POP
00003de8: SWAP3
00003de9: POP
00003dea: SWAP3
00003deb: JUMP
00003dec: JUMPDEST
00003ded: PUSH0
00003dee: DUP1
00003def: PUSH0
00003df0: DUP6
00003df1: PUSH1 0x01
00003df3: PUSH1 0x01
00003df5: PUSH1 0xa0
00003df7: SHL
00003df8: SUB
00003df9: AND
00003dfa: DUP6
00003dfb: DUP6
00003dfc: PUSH1 0x40
00003dfe: MLOAD
00003dff: PUSH1 0x24
00003e01: ADD
00003e02: PUSH2 0x3e0c
00003e05: SWAP3
00003e06: SWAP2
00003e07: SWAP1
00003e08: PUSH2 0x59e1
00003e0b: JUMP
00003e0c: JUMPDEST
00003e0d: PUSH1 0x40
00003e0f: DUP1
00003e10: MLOAD
00003e11: PUSH1 0x1f
00003e13: NOT
00003e14: DUP2
00003e15: DUP5
00003e16: SUB
00003e17: ADD
00003e18: DUP2
00003e19: MSTORE
00003e1a: SWAP2
00003e1b: DUP2
00003e1c: MSTORE
00003e1d: PUSH1 0x20
00003e1f: DUP3
00003e20: ADD
00003e21: DUP1
00003e22: MLOAD
00003e23: PUSH1 0x01
00003e25: PUSH1 0x01
00003e27: PUSH1 0xe0
00003e29: SHL
00003e2a: SUB
00003e2b: AND
00003e2c: PUSH4 0x0b135d3f
00003e31: PUSH1 0xe1
00003e33: SHL
00003e34: OR
00003e35: SWAP1
00003e36: MSTORE
00003e37: MLOAD
00003e38: PUSH2 0x3e41
00003e3b: SWAP2
00003e3c: SWAP1
00003e3d: PUSH2 0x59f9
00003e40: JUMP
00003e41: JUMPDEST
00003e42: PUSH0
00003e43: PUSH1 0x40
00003e45: MLOAD
00003e46: DUP1
00003e47: DUP4
00003e48: SUB
00003e49: DUP2
00003e4a: DUP6
00003e4b: GAS
00003e4c: STATICCALL
00003e4d: SWAP2
00003e4e: POP
00003e4f: POP
00003e50: RETURNDATASIZE
00003e51: DUP1
00003e52: PUSH0
00003e53: DUP2
00003e54: EQ
00003e55: PUSH2 0x3e79
00003e58: JUMPI
00003e59: PUSH1 0x40
00003e5b: MLOAD
00003e5c: SWAP2
00003e5d: POP
00003e5e: PUSH1 0x1f
00003e60: NOT
00003e61: PUSH1 0x3f
00003e63: RETURNDATASIZE
00003e64: ADD
00003e65: AND
00003e66: DUP3
00003e67: ADD
00003e68: PUSH1 0x40
00003e6a: MSTORE
00003e6b: RETURNDATASIZE
00003e6c: DUP3
00003e6d: MSTORE
00003e6e: RETURNDATASIZE
00003e6f: PUSH0
00003e70: PUSH1 0x20
00003e72: DUP5
00003e73: ADD
00003e74: RETURNDATACOPY
00003e75: PUSH2 0x3e7e
00003e78: JUMP
00003e79: JUMPDEST
00003e7a: PUSH1 0x60
00003e7c: SWAP2
00003e7d: POP
00003e7e: JUMPDEST
00003e7f: POP
00003e80: SWAP2
00003e81: POP
00003e82: SWAP2
00003e83: POP
00003e84: DUP2
00003e85: DUP1
00003e86: ISZERO
00003e87: PUSH2 0x3e92
00003e8a: JUMPI
00003e8b: POP
00003e8c: PUSH1 0x20
00003e8e: DUP2
00003e8f: MLOAD
00003e90: LT
00003e91: ISZERO
00003e92: JUMPDEST
00003e93: DUP1
00003e94: ISZERO
00003e95: PUSH2 0x32e0
00003e98: JUMPI
00003e99: POP
00003e9a: DUP1
00003e9b: MLOAD
00003e9c: PUSH4 0x0b135d3f
00003ea1: PUSH1 0xe1
00003ea3: SHL
00003ea4: SWAP1
00003ea5: PUSH2 0x3eb7
00003ea8: SWAP1
00003ea9: DUP4
00003eaa: ADD
00003eab: PUSH1 0x20
00003ead: SWAP1
00003eae: DUP2
00003eaf: ADD
00003eb0: SWAP1
00003eb1: DUP5
00003eb2: ADD
00003eb3: PUSH2 0x56c0
00003eb6: JUMP
00003eb7: JUMPDEST
00003eb8: EQ
00003eb9: SWAP7
00003eba: SWAP6
00003ebb: POP
00003ebc: POP
00003ebd: POP
00003ebe: POP
00003ebf: POP
00003ec0: POP
00003ec1: JUMP
00003ec2: JUMPDEST
00003ec3: PUSH0
00003ec4: DUP3
00003ec5: PUSH1 0x03
00003ec7: DUP2
00003ec8: GT
00003ec9: ISZERO
00003eca: PUSH2 0x3ed5
00003ecd: JUMPI
00003ece: PUSH2 0x3ed5
00003ed1: PUSH2 0x5781
00003ed4: JUMP
00003ed5: JUMPDEST
00003ed6: SUB
00003ed7: PUSH2 0x3ede
00003eda: JUMPI
00003edb: POP
00003edc: POP
00003edd: JUMP
00003ede: JUMPDEST
00003edf: PUSH1 0x01
00003ee1: DUP3
00003ee2: PUSH1 0x03
00003ee4: DUP2
00003ee5: GT
00003ee6: ISZERO
00003ee7: PUSH2 0x3ef2
00003eea: JUMPI
00003eeb: PUSH2 0x3ef2
00003eee: PUSH2 0x5781
00003ef1: JUMP
00003ef2: JUMPDEST
00003ef3: SUB
00003ef4: PUSH2 0x3f10
00003ef7: JUMPI
00003ef8: PUSH1 0x40
00003efa: MLOAD
00003efb: PUSH4 0xf645eedf
00003f00: PUSH1 0xe0
00003f02: SHL
00003f03: DUP2
00003f04: MSTORE
00003f05: PUSH1 0x04
00003f07: ADD
00003f08: PUSH1 0x40
00003f0a: MLOAD
00003f0b: DUP1
00003f0c: SWAP2
00003f0d: SUB
00003f0e: SWAP1
00003f0f: REVERT
00003f10: JUMPDEST
00003f11: PUSH1 0x02
00003f13: DUP3
00003f14: PUSH1 0x03
00003f16: DUP2
00003f17: GT
00003f18: ISZERO
00003f19: PUSH2 0x3f24
00003f1c: JUMPI
00003f1d: PUSH2 0x3f24
00003f20: PUSH2 0x5781
00003f23: JUMP
00003f24: JUMPDEST
00003f25: SUB
00003f26: PUSH2 0x3f45
00003f29: JUMPI
00003f2a: PUSH1 0x40
00003f2c: MLOAD
00003f2d: PUSH4 0xfce698f7
00003f32: PUSH1 0xe0
00003f34: SHL
00003f35: DUP2
00003f36: MSTORE
00003f37: PUSH1 0x04
00003f39: DUP2
00003f3a: ADD
00003f3b: DUP3
00003f3c: SWAP1
00003f3d: MSTORE
00003f3e: PUSH1 0x24
00003f40: ADD
00003f41: PUSH2 0x14fa
00003f44: JUMP
00003f45: JUMPDEST
00003f46: PUSH1 0x03
00003f48: DUP3
00003f49: PUSH1 0x03
00003f4b: DUP2
00003f4c: GT
00003f4d: ISZERO
00003f4e: PUSH2 0x3f59
00003f51: JUMPI
00003f52: PUSH2 0x3f59
00003f55: PUSH2 0x5781
00003f58: JUMP
00003f59: JUMPDEST
00003f5a: SUB
00003f5b: PUSH2 0x0f1a
00003f5e: JUMPI
00003f5f: PUSH1 0x40
00003f61: MLOAD
00003f62: PUSH4 0x35e2f383
00003f67: PUSH1 0xe2
00003f69: SHL
00003f6a: DUP2
00003f6b: MSTORE
00003f6c: PUSH1 0x04
00003f6e: DUP2
00003f6f: ADD
00003f70: DUP3
00003f71: SWAP1
00003f72: MSTORE
00003f73: PUSH1 0x24
00003f75: ADD
00003f76: PUSH2 0x14fa
00003f79: JUMP
00003f7a: JUMPDEST
00003f7b: PUSH0
00003f7c: DUP2
00003f7d: DUP2
00003f7e: JUMPDEST
00003f7f: DUP5
00003f80: DUP2
00003f81: LT
00003f82: ISZERO
00003f83: PUSH2 0x1cae
00003f86: JUMPI
00003f87: PUSH2 0x3fa8
00003f8a: DUP3
00003f8b: DUP8
00003f8c: DUP8
00003f8d: DUP5
00003f8e: DUP2
00003f8f: DUP2
00003f90: LT
00003f91: PUSH2 0x3f9c
00003f94: JUMPI
00003f95: PUSH2 0x3f9c
00003f98: PUSH2 0x52f4
00003f9b: JUMP
00003f9c: JUMPDEST
00003f9d: SWAP1
00003f9e: POP
00003f9f: PUSH1 0x20
00003fa1: MUL
00003fa2: ADD
00003fa3: CALLDATALOAD
00003fa4: PUSH2 0x4517
00003fa7: JUMP
00003fa8: JUMPDEST
00003fa9: SWAP2
00003faa: POP
00003fab: PUSH1 0x01
00003fad: ADD
00003fae: PUSH2 0x3f7e
00003fb1: JUMP
00003fb2: JUMPDEST
00003fb3: PUSH1 0x80
00003fb5: DUP3
00003fb6: DUP2
00003fb7: ADD
00003fb8: MLOAD
00003fb9: DUP1
00003fba: MLOAD
00003fbb: PUSH1 0x20
00003fbd: SWAP2
00003fbe: DUP3
00003fbf: ADD
00003fc0: MLOAD
00003fc1: PUSH1 0x40
00003fc3: DUP1
00003fc4: MLOAD
00003fc5: PUSH32 0x953108a3ec009aa6b52fdec87fca4e92a1dd82710c0c6e2497368614711c355f
00003fe6: DUP2
00003fe7: DUP7
00003fe8: ADD
00003fe9: MSTORE
00003fea: DUP1
00003feb: DUP3
00003fec: ADD
00003fed: SWAP4
00003fee: SWAP1
00003fef: SWAP4
00003ff0: MSTORE
00003ff1: PUSH1 0x60
00003ff3: DUP1
00003ff4: DUP5
00003ff5: ADD
00003ff6: SWAP3
00003ff7: SWAP1
00003ff8: SWAP3
00003ff9: MSTORE
00003ffa: DUP1
00003ffb: MLOAD
00003ffc: DUP1
00003ffd: DUP5
00003ffe: SUB
00003fff: DUP4
00004000: ADD
00004001: DUP2
00004002: MSTORE
00004003: SWAP5
00004004: DUP4
00004005: ADD
00004006: DUP2
00004007: MSTORE
00004008: DUP5
00004009: MLOAD
0000400a: SWAP5
0000400b: DUP5
0000400c: ADD
0000400d: SWAP5
0000400e: SWAP1
0000400f: SWAP5
00004010: KECCAK256
00004011: DUP7
00004012: MLOAD
00004013: DUP5
00004014: DUP9
00004015: ADD
00004016: MLOAD
00004017: DUP7
00004018: DUP10
00004019: ADD
0000401a: MLOAD
0000401b: SWAP4
0000401c: DUP10
0000401d: ADD
0000401e: MLOAD
0000401f: PUSH1 0xa0
00004021: DUP1
00004022: DUP12
00004023: ADD
00004024: MLOAD
00004025: PUSH32 0x34a89751a0a9c434a0b09a2df0ebf72338e87f92fc423ec7b07bb6a49af0f704
00004046: SWAP2
00004047: DUP9
00004048: ADD
00004049: SWAP2
0000404a: SWAP1
0000404b: SWAP2
0000404c: MSTORE
0000404d: PUSH1 0x01
0000404f: PUSH1 0x01
00004051: PUSH1 0x80
00004053: SHL
00004054: SUB
00004055: NOT
00004056: SWAP4
00004057: DUP5
00004058: AND
00004059: PUSH1 0xc0
0000405b: DUP9
0000405c: ADD
0000405d: MSTORE
0000405e: SWAP3
0000405f: SWAP1
00004060: SWAP2
00004061: AND
00004062: PUSH1 0xe0
00004064: DUP7
00004065: ADD
00004066: MSTORE
00004067: PUSH1 0x01
00004069: PUSH1 0x01
0000406b: PUSH1 0xa0
0000406d: SHL
0000406e: SUB
0000406f: SWAP1
00004070: SWAP4
00004071: AND
00004072: PUSH2 0x0100
00004075: DUP6
00004076: ADD
00004077: MSTORE
00004078: PUSH2 0x0120
0000407b: DUP5
0000407c: ADD
0000407d: SWAP3
0000407e: SWAP1
0000407f: SWAP3
00004080: MSTORE
00004081: PUSH2 0x0140
00004084: DUP4
00004085: ADD
00004086: DUP2
00004087: SWAP1
00004088: MSTORE
00004089: PUSH2 0x0160
0000408c: DUP1
0000408d: DUP5
0000408e: ADD
0000408f: SWAP3
00004090: SWAP1
00004091: SWAP3
00004092: MSTORE
00004093: DUP5
00004094: MLOAD
00004095: DUP1
00004096: DUP5
00004097: SUB
00004098: SWAP1
00004099: SWAP3
0000409a: ADD
0000409b: DUP3
0000409c: MSTORE
0000409d: PUSH2 0x0180
000040a0: DUP4
000040a1: ADD
000040a2: SWAP5
000040a3: DUP6
000040a4: SWAP1
000040a5: MSTORE
000040a6: DUP2
000040a7: MLOAD
000040a8: SWAP2
000040a9: SWAP1
000040aa: SWAP4
000040ab: ADD
000040ac: KECCAK256
000040ad: PUSH2 0x1901
000040b0: PUSH1 0xf0
000040b2: SHL
000040b3: DUP5
000040b4: MSTORE
000040b5: PUSH2 0x0182
000040b8: DUP3
000040b9: ADD
000040ba: DUP6
000040bb: SWAP1
000040bc: MSTORE
000040bd: PUSH2 0x01a2
000040c0: SWAP1
000040c1: SWAP2
000040c2: ADD
000040c3: DUP2
000040c4: SWAP1
000040c5: MSTORE
000040c6: PUSH1 0x42
000040c8: SWAP1
000040c9: SWAP3
000040ca: KECCAK256
000040cb: PUSH0
000040cc: SWAP3
000040cd: SWAP1
000040ce: PUSH2 0x0fef
000040d1: JUMP
000040d2: JUMPDEST
000040d3: PUSH0
000040d4: DUP2
000040d5: DUP2
000040d6: MSTORE
000040d7: PUSH1 0x01
000040d9: DUP4
000040da: ADD
000040db: PUSH1 0x20
000040dd: MSTORE
000040de: PUSH1 0x40
000040e0: DUP2
000040e1: KECCAK256
000040e2: SLOAD
000040e3: PUSH2 0x4117
000040e6: JUMPI
000040e7: POP
000040e8: DUP2
000040e9: SLOAD
000040ea: PUSH1 0x01
000040ec: DUP2
000040ed: DUP2
000040ee: ADD
000040ef: DUP5
000040f0: SSTORE
000040f1: PUSH0
000040f2: DUP5
000040f3: DUP2
000040f4: MSTORE
000040f5: PUSH1 0x20
000040f7: DUP1
000040f8: DUP3
000040f9: KECCAK256
000040fa: SWAP1
000040fb: SWAP4
000040fc: ADD
000040fd: DUP5
000040fe: SWAP1
000040ff: SSTORE
00004100: DUP5
00004101: SLOAD
00004102: DUP5
00004103: DUP3
00004104: MSTORE
00004105: DUP3
00004106: DUP7
00004107: ADD
00004108: SWAP1
00004109: SWAP4
0000410a: MSTORE
0000410b: PUSH1 0x40
0000410d: SWAP1
0000410e: KECCAK256
0000410f: SWAP2
00004110: SWAP1
00004111: SWAP2
00004112: SSTORE
00004113: PUSH2 0x0998
00004116: JUMP
00004117: JUMPDEST
00004118: POP
00004119: PUSH0
0000411a: PUSH2 0x0998
0000411d: JUMP
0000411e: JUMPDEST
0000411f: DUP2
00004120: MLOAD
00004121: PUSH1 0x60
00004123: SWAP1
00004124: PUSH0
00004125: PUSH2 0x412f
00004128: PUSH1 0x02
0000412a: DUP4
0000412b: PUSH2 0x5a14
0000412e: JUMP
0000412f: JUMPDEST
00004130: SWAP1
00004131: POP
00004132: PUSH0
00004133: PUSH2 0x413d
00004136: PUSH1 0x02
00004138: DUP5
00004139: PUSH2 0x5a27
0000413c: JUMP
0000413d: JUMPDEST
0000413e: ISZERO
0000413f: DUP1
00004140: ISZERO
00004141: SWAP2
00004142: POP
00004143: PUSH2 0x4154
00004146: JUMPI
00004147: DUP2
00004148: PUSH2 0x4150
0000414b: DUP2
0000414c: PUSH2 0x5a3a
0000414f: JUMP
00004150: JUMPDEST
00004151: SWAP3
00004152: POP
00004153: POP
00004154: JUMPDEST
00004155: DUP6
00004156: DUP6
00004157: PUSH2 0x419f
0000415a: JUMPI
0000415b: DUP3
0000415c: PUSH1 0x01
0000415e: PUSH1 0x01
00004160: PUSH1 0x40
00004162: SHL
00004163: SUB
00004164: DUP2
00004165: GT
00004166: ISZERO
00004167: PUSH2 0x4172
0000416a: JUMPI
0000416b: PUSH2 0x4172
0000416e: PUSH2 0x46ae
00004171: JUMP
00004172: JUMPDEST
00004173: PUSH1 0x40
00004175: MLOAD
00004176: SWAP1
00004177: DUP1
00004178: DUP3
00004179: MSTORE
0000417a: DUP1
0000417b: PUSH1 0x20
0000417d: MUL
0000417e: PUSH1 0x20
00004180: ADD
00004181: DUP3
00004182: ADD
00004183: PUSH1 0x40
00004185: MSTORE
00004186: DUP1
00004187: ISZERO
00004188: PUSH2 0x419b
0000418b: JUMPI
0000418c: DUP2
0000418d: PUSH1 0x20
0000418f: ADD
00004190: PUSH1 0x20
00004192: DUP3
00004193: MUL
00004194: DUP1
00004195: CALLDATASIZE
00004196: DUP4
00004197: CALLDATACOPY
00004198: ADD
00004199: SWAP1
0000419a: POP
0000419b: JUMPDEST
0000419c: POP
0000419d: SWAP1
0000419e: POP
0000419f: JUMPDEST
000041a0: PUSH0
000041a1: DUP3
000041a2: PUSH2 0x41ab
000041a5: JUMPI
000041a6: DUP4
000041a7: PUSH2 0x41b6
000041aa: JUMP
000041ab: JUMPDEST
000041ac: PUSH2 0x41b6
000041af: PUSH1 0x01
000041b1: DUP6
000041b2: PUSH2 0x56ad
000041b5: JUMP
000041b6: JUMPDEST
000041b7: SWAP1
000041b8: POP
000041b9: PUSH0
000041ba: JUMPDEST
000041bb: DUP2
000041bc: DUP2
000041bd: LT
000041be: ISZERO
000041bf: PUSH2 0x4244
000041c2: JUMPI
000041c3: PUSH2 0x421f
000041c6: DUP10
000041c7: PUSH2 0x41d1
000041ca: DUP4
000041cb: PUSH1 0x02
000041cd: PUSH2 0x5a52
000041d0: JUMP
000041d1: JUMPDEST
000041d2: DUP2
000041d3: MLOAD
000041d4: DUP2
000041d5: LT
000041d6: PUSH2 0x41e1
000041d9: JUMPI
000041da: PUSH2 0x41e1
000041dd: PUSH2 0x52f4
000041e0: JUMP
000041e1: JUMPDEST
000041e2: PUSH1 0x20
000041e4: MUL
000041e5: PUSH1 0x20
000041e7: ADD
000041e8: ADD
000041e9: MLOAD
000041ea: DUP11
000041eb: DUP4
000041ec: PUSH1 0x02
000041ee: PUSH2 0x41f7
000041f1: SWAP2
000041f2: SWAP1
000041f3: PUSH2 0x5a52
000041f6: JUMP
000041f7: JUMPDEST
000041f8: PUSH2 0x4202
000041fb: SWAP1
000041fc: PUSH1 0x01
000041fe: PUSH2 0x54d7
00004201: JUMP
00004202: JUMPDEST
00004203: DUP2
00004204: MLOAD
00004205: DUP2
00004206: LT
00004207: PUSH2 0x4212
0000420a: JUMPI
0000420b: PUSH2 0x4212
0000420e: PUSH2 0x52f4
00004211: JUMP
00004212: JUMPDEST
00004213: PUSH1 0x20
00004215: MUL
00004216: PUSH1 0x20
00004218: ADD
00004219: ADD
0000421a: MLOAD
0000421b: PUSH2 0x4517
0000421e: JUMP
0000421f: JUMPDEST
00004220: DUP4
00004221: DUP3
00004222: DUP2
00004223: MLOAD
00004224: DUP2
00004225: LT
00004226: PUSH2 0x4231
00004229: JUMPI
0000422a: PUSH2 0x4231
0000422d: PUSH2 0x52f4
00004230: JUMP
00004231: JUMPDEST
00004232: PUSH1 0x20
00004234: SWAP1
00004235: DUP2
00004236: MUL
00004237: SWAP2
00004238: SWAP1
00004239: SWAP2
0000423a: ADD
0000423b: ADD
0000423c: MSTORE
0000423d: PUSH1 0x01
0000423f: ADD
00004240: PUSH2 0x41ba
00004243: JUMP
00004244: JUMPDEST
00004245: POP
00004246: DUP3
00004247: ISZERO
00004248: PUSH2 0x42a9
0000424b: JUMPI
0000424c: PUSH2 0x4280
0000424f: DUP9
00004250: PUSH2 0x425a
00004253: PUSH1 0x01
00004255: DUP9
00004256: PUSH2 0x56ad
00004259: JUMP
0000425a: JUMPDEST
0000425b: DUP2
0000425c: MLOAD
0000425d: DUP2
0000425e: LT
0000425f: PUSH2 0x426a
00004262: JUMPI
00004263: PUSH2 0x426a
00004266: PUSH2 0x52f4
00004269: JUMP
0000426a: JUMPDEST
0000426b: PUSH1 0x20
0000426d: MUL
0000426e: PUSH1 0x20
00004270: ADD
00004271: ADD
00004272: MLOAD
00004273: DUP10
00004274: PUSH1 0x01
00004276: DUP9
00004277: PUSH2 0x4202
0000427a: SWAP2
0000427b: SWAP1
0000427c: PUSH2 0x56ad
0000427f: JUMP
00004280: JUMPDEST
00004281: DUP3
00004282: PUSH2 0x428c
00004285: PUSH1 0x01
00004287: DUP8
00004288: PUSH2 0x56ad
0000428b: JUMP
0000428c: JUMPDEST
0000428d: DUP2
0000428e: MLOAD
0000428f: DUP2
00004290: LT
00004291: PUSH2 0x429c
00004294: JUMPI
00004295: PUSH2 0x429c
00004298: PUSH2 0x52f4
0000429b: JUMP
0000429c: JUMPDEST
0000429d: PUSH1 0x20
0000429f: MUL
000042a0: PUSH1 0x20
000042a2: ADD
000042a3: ADD
000042a4: DUP2
000042a5: DUP2
000042a6: MSTORE
000042a7: POP
000042a8: POP
000042a9: JUMPDEST
000042aa: DUP7
000042ab: ISZERO
000042ac: PUSH2 0x42b3
000042af: JUMPI
000042b0: DUP4
000042b1: DUP3
000042b2: MSTORE
000042b3: JUMPDEST
000042b4: POP
000042b5: SWAP7
000042b6: SWAP6
000042b7: POP
000042b8: POP
000042b9: POP
000042ba: POP
000042bb: POP
000042bc: POP
000042bd: JUMP
000042be: JUMPDEST
000042bf: PUSH0
000042c0: DUP2
000042c1: DUP2
000042c2: MSTORE
000042c3: PUSH1 0x01
000042c5: DUP4
000042c6: ADD
000042c7: PUSH1 0x20
000042c9: MSTORE
000042ca: PUSH1 0x40
000042cc: DUP2
000042cd: KECCAK256
000042ce: SLOAD
000042cf: DUP1
000042d0: ISZERO
000042d1: PUSH2 0x3916
000042d4: JUMPI
000042d5: PUSH0
000042d6: PUSH2 0x42e0
000042d9: PUSH1 0x01
000042db: DUP4
000042dc: PUSH2 0x56ad
000042df: JUMP
000042e0: JUMPDEST
000042e1: DUP6
000042e2: SLOAD
000042e3: SWAP1
000042e4: SWAP2
000042e5: POP
000042e6: PUSH0
000042e7: SWAP1
000042e8: PUSH2 0x42f3
000042eb: SWAP1
000042ec: PUSH1 0x01
000042ee: SWAP1
000042ef: PUSH2 0x56ad
000042f2: JUMP
000042f3: JUMPDEST
000042f4: SWAP1
000042f5: POP
000042f6: DUP1
000042f7: DUP3
000042f8: EQ
000042f9: PUSH2 0x4352
000042fc: JUMPI
000042fd: PUSH0
000042fe: DUP7
000042ff: PUSH0
00004300: ADD
00004301: DUP3
00004302: DUP2
00004303: SLOAD
00004304: DUP2
00004305: LT
00004306: PUSH2 0x4311
00004309: JUMPI
0000430a: PUSH2 0x4311
0000430d: PUSH2 0x52f4
00004310: JUMP
00004311: JUMPDEST
00004312: SWAP1
00004313: PUSH0
00004314: MSTORE
00004315: PUSH1 0x20
00004317: PUSH0
00004318: KECCAK256
00004319: ADD
0000431a: SLOAD
0000431b: SWAP1
0000431c: POP
0000431d: DUP1
0000431e: DUP8
0000431f: PUSH0
00004320: ADD
00004321: DUP5
00004322: DUP2
00004323: SLOAD
00004324: DUP2
00004325: LT
00004326: PUSH2 0x4331
00004329: JUMPI
0000432a: PUSH2 0x4331
0000432d: PUSH2 0x52f4
00004330: JUMP
00004331: JUMPDEST
00004332: PUSH0
00004333: SWAP2
00004334: DUP3
00004335: MSTORE
00004336: PUSH1 0x20
00004338: DUP1
00004339: DUP4
0000433a: KECCAK256
0000433b: SWAP1
0000433c: SWAP2
0000433d: ADD
0000433e: SWAP3
0000433f: SWAP1
00004340: SWAP3
00004341: SSTORE
00004342: SWAP2
00004343: DUP3
00004344: MSTORE
00004345: PUSH1 0x01
00004347: DUP9
00004348: ADD
00004349: SWAP1
0000434a: MSTORE
0000434b: PUSH1 0x40
0000434d: SWAP1
0000434e: KECCAK256
0000434f: DUP4
00004350: SWAP1
00004351: SSTORE
00004352: JUMPDEST
00004353: DUP6
00004354: SLOAD
00004355: DUP7
00004356: SWAP1
00004357: DUP1
00004358: PUSH2 0x4363
0000435b: JUMPI
0000435c: PUSH2 0x4363
0000435f: PUSH2 0x5a69
00004362: JUMP
00004363: JUMPDEST
00004364: PUSH1 0x01
00004366: SWAP1
00004367: SUB
00004368: DUP2
00004369: DUP2
0000436a: SWAP1
0000436b: PUSH0
0000436c: MSTORE
0000436d: PUSH1 0x20
0000436f: PUSH0
00004370: KECCAK256
00004371: ADD
00004372: PUSH0
00004373: SWAP1
00004374: SSTORE
00004375: SWAP1
00004376: SSTORE
00004377: DUP6
00004378: PUSH1 0x01
0000437a: ADD
0000437b: PUSH0
0000437c: DUP7
0000437d: DUP2
0000437e: MSTORE
0000437f: PUSH1 0x20
00004381: ADD
00004382: SWAP1
00004383: DUP2
00004384: MSTORE
00004385: PUSH1 0x20
00004387: ADD
00004388: PUSH0
00004389: KECCAK256
0000438a: PUSH0
0000438b: SWAP1
0000438c: SSTORE
0000438d: PUSH1 0x01
0000438f: SWAP4
00004390: POP
00004391: POP
00004392: POP
00004393: POP
00004394: PUSH2 0x0998
00004397: JUMP
00004398: JUMPDEST
00004399: PUSH1 0x60
0000439b: PUSH2 0x1cb2
0000439e: DUP4
0000439f: DUP4
000043a0: PUSH0
000043a1: PUSH2 0x4543
000043a4: JUMP
000043a5: JUMPDEST
000043a6: PUSH0
000043a7: PUSH0
000043a8: DUP1
000043a9: MLOAD
000043aa: PUSH1 0x20
000043ac: PUSH2 0x5a9e
000043af: DUP4
000043b0: CODECOPY
000043b1: DUP2
000043b2: MLOAD
000043b3: SWAP2
000043b4: MSTORE
000043b5: DUP2
000043b6: PUSH2 0x43bd
000043b9: PUSH2 0x3012
000043bc: JUMP
000043bd: JUMPDEST
000043be: DUP1
000043bf: MLOAD
000043c0: SWAP1
000043c1: SWAP2
000043c2: POP
000043c3: ISZERO
000043c4: PUSH2 0x43d5
000043c7: JUMPI
000043c8: DUP1
000043c9: MLOAD
000043ca: PUSH1 0x20
000043cc: SWAP1
000043cd: SWAP2
000043ce: ADD
000043cf: KECCAK256
000043d0: SWAP3
000043d1: SWAP2
000043d2: POP
000043d3: POP
000043d4: JUMP
000043d5: JUMPDEST
000043d6: DUP2
000043d7: SLOAD
000043d8: DUP1
000043d9: ISZERO
000043da: PUSH2 0x43e4
000043dd: JUMPI
000043de: SWAP4
000043df: SWAP3
000043e0: POP
000043e1: POP
000043e2: POP
000043e3: JUMP
000043e4: JUMPDEST
000043e5: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
00004406: SWAP4
00004407: POP
00004408: POP
00004409: POP
0000440a: POP
0000440b: SWAP1
0000440c: JUMP
0000440d: JUMPDEST
0000440e: PUSH0
0000440f: PUSH0
00004410: DUP1
00004411: MLOAD
00004412: PUSH1 0x20
00004414: PUSH2 0x5a9e
00004417: DUP4
00004418: CODECOPY
00004419: DUP2
0000441a: MLOAD
0000441b: SWAP2
0000441c: MSTORE
0000441d: DUP2
0000441e: PUSH2 0x4425
00004421: PUSH2 0x30d2
00004424: JUMP
00004425: JUMPDEST
00004426: DUP1
00004427: MLOAD
00004428: SWAP1
00004429: SWAP2
0000442a: POP
0000442b: ISZERO
0000442c: PUSH2 0x443d
0000442f: JUMPI
00004430: DUP1
00004431: MLOAD
00004432: PUSH1 0x20
00004434: SWAP1
00004435: SWAP2
00004436: ADD
00004437: KECCAK256
00004438: SWAP3
00004439: SWAP2
0000443a: POP
0000443b: POP
0000443c: JUMP
0000443d: JUMPDEST
0000443e: PUSH1 0x01
00004440: DUP3
00004441: ADD
00004442: SLOAD
00004443: DUP1
00004444: ISZERO
00004445: PUSH2 0x43e4
00004448: JUMPI
00004449: SWAP4
0000444a: SWAP3
0000444b: POP
0000444c: POP
0000444d: POP
0000444e: JUMP
0000444f: JUMPDEST
00004450: PUSH0
00004451: DUP1
00004452: DUP1
00004453: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
00004474: DUP5
00004475: GT
00004476: ISZERO
00004477: PUSH2 0x4488
0000447a: JUMPI
0000447b: POP
0000447c: PUSH0
0000447d: SWAP2
0000447e: POP
0000447f: PUSH1 0x03
00004481: SWAP1
00004482: POP
00004483: DUP3
00004484: PUSH2 0x450d
00004487: JUMP
00004488: JUMPDEST
00004489: PUSH1 0x40
0000448b: DUP1
0000448c: MLOAD
0000448d: PUSH0
0000448e: DUP1
0000448f: DUP3
00004490: MSTORE
00004491: PUSH1 0x20
00004493: DUP3
00004494: ADD
00004495: DUP1
00004496: DUP5
00004497: MSTORE
00004498: DUP11
00004499: SWAP1
0000449a: MSTORE
0000449b: PUSH1 0xff
0000449d: DUP10
0000449e: AND
0000449f: SWAP3
000044a0: DUP3
000044a1: ADD
000044a2: SWAP3
000044a3: SWAP1
000044a4: SWAP3
000044a5: MSTORE
000044a6: PUSH1 0x60
000044a8: DUP2
000044a9: ADD
000044aa: DUP8
000044ab: SWAP1
000044ac: MSTORE
000044ad: PUSH1 0x80
000044af: DUP2
000044b0: ADD
000044b1: DUP7
000044b2: SWAP1
000044b3: MSTORE
000044b4: PUSH1 0x01
000044b6: SWAP1
000044b7: PUSH1 0xa0
000044b9: ADD
000044ba: PUSH1 0x20
000044bc: PUSH1 0x40
000044be: MLOAD
000044bf: PUSH1 0x20
000044c1: DUP2
000044c2: SUB
000044c3: SWAP1
000044c4: DUP1
000044c5: DUP5
000044c6: SUB
000044c7: SWAP1
000044c8: DUP6
000044c9: GAS
000044ca: STATICCALL
000044cb: ISZERO
000044cc: DUP1
000044cd: ISZERO
000044ce: PUSH2 0x44d9
000044d1: JUMPI
000044d2: RETURNDATASIZE
000044d3: PUSH0
000044d4: DUP1
000044d5: RETURNDATACOPY
000044d6: RETURNDATASIZE
000044d7: PUSH0
000044d8: REVERT
000044d9: JUMPDEST
000044da: POP
000044db: POP
000044dc: PUSH1 0x40
000044de: MLOAD
000044df: PUSH1 0x1f
000044e1: NOT
000044e2: ADD
000044e3: MLOAD
000044e4: SWAP2
000044e5: POP
000044e6: POP
000044e7: PUSH1 0x01
000044e9: PUSH1 0x01
000044eb: PUSH1 0xa0
000044ed: SHL
000044ee: SUB
000044ef: DUP2
000044f0: AND
000044f1: PUSH2 0x4504
000044f4: JUMPI
000044f5: POP
000044f6: PUSH0
000044f7: SWAP3
000044f8: POP
000044f9: PUSH1 0x01
000044fb: SWAP2
000044fc: POP
000044fd: DUP3
000044fe: SWAP1
000044ff: POP
00004500: PUSH2 0x450d
00004503: JUMP
00004504: JUMPDEST
00004505: SWAP3
00004506: POP
00004507: PUSH0
00004508: SWAP2
00004509: POP
0000450a: DUP2
0000450b: SWAP1
0000450c: POP
0000450d: JUMPDEST
0000450e: SWAP5
0000450f: POP
00004510: SWAP5
00004511: POP
00004512: SWAP5
00004513: SWAP2
00004514: POP
00004515: POP
00004516: JUMP
00004517: JUMPDEST
00004518: PUSH0
00004519: DUP2
0000451a: DUP4
0000451b: LT
0000451c: PUSH2 0x4531
0000451f: JUMPI
00004520: PUSH0
00004521: DUP3
00004522: DUP2
00004523: MSTORE
00004524: PUSH1 0x20
00004526: DUP5
00004527: SWAP1
00004528: MSTORE
00004529: PUSH1 0x40
0000452b: SWAP1
0000452c: KECCAK256
0000452d: PUSH2 0x1cb2
00004530: JUMP
00004531: JUMPDEST
00004532: PUSH0
00004533: DUP4
00004534: DUP2
00004535: MSTORE
00004536: PUSH1 0x20
00004538: DUP4
00004539: SWAP1
0000453a: MSTORE
0000453b: PUSH1 0x40
0000453d: SWAP1
0000453e: KECCAK256
0000453f: PUSH2 0x1cb2
00004542: JUMP
00004543: JUMPDEST
00004544: PUSH1 0x60
00004546: DUP2
00004547: SELFBALANCE
00004548: LT
00004549: ISZERO
0000454a: PUSH2 0x4568
0000454d: JUMPI
0000454e: PUSH1 0x40
00004550: MLOAD
00004551: PUSH4 0xcd786059
00004556: PUSH1 0xe0
00004558: SHL
00004559: DUP2
0000455a: MSTORE
0000455b: ADDRESS
0000455c: PUSH1 0x04
0000455e: DUP3
0000455f: ADD
00004560: MSTORE
00004561: PUSH1 0x24
00004563: ADD
00004564: PUSH2 0x14fa
00004567: JUMP
00004568: JUMPDEST
00004569: PUSH0
0000456a: DUP1
0000456b: DUP6
0000456c: PUSH1 0x01
0000456e: PUSH1 0x01
00004570: PUSH1 0xa0
00004572: SHL
00004573: SUB
00004574: AND
00004575: DUP5
00004576: DUP7
00004577: PUSH1 0x40
00004579: MLOAD
0000457a: PUSH2 0x4583
0000457d: SWAP2
0000457e: SWAP1
0000457f: PUSH2 0x59f9
00004582: JUMP
00004583: JUMPDEST
00004584: PUSH0
00004585: PUSH1 0x40
00004587: MLOAD
00004588: DUP1
00004589: DUP4
0000458a: SUB
0000458b: DUP2
0000458c: DUP6
0000458d: DUP8
0000458e: GAS
0000458f: CALL
00004590: SWAP3
00004591: POP
00004592: POP
00004593: POP
00004594: RETURNDATASIZE
00004595: DUP1
00004596: PUSH0
00004597: DUP2
00004598: EQ
00004599: PUSH2 0x45bd
0000459c: JUMPI
0000459d: PUSH1 0x40
0000459f: MLOAD
000045a0: SWAP2
000045a1: POP
000045a2: PUSH1 0x1f
000045a4: NOT
000045a5: PUSH1 0x3f
000045a7: RETURNDATASIZE
000045a8: ADD
000045a9: AND
000045aa: DUP3
000045ab: ADD
000045ac: PUSH1 0x40
000045ae: MSTORE
000045af: RETURNDATASIZE
000045b0: DUP3
000045b1: MSTORE
000045b2: RETURNDATASIZE
000045b3: PUSH0
000045b4: PUSH1 0x20
000045b6: DUP5
000045b7: ADD
000045b8: RETURNDATACOPY
000045b9: PUSH2 0x45c2
000045bc: JUMP
000045bd: JUMPDEST
000045be: PUSH1 0x60
000045c0: SWAP2
000045c1: POP
000045c2: JUMPDEST
000045c3: POP
000045c4: SWAP2
000045c5: POP
000045c6: SWAP2
000045c7: POP
000045c8: PUSH2 0x32e0
000045cb: DUP7
000045cc: DUP4
000045cd: DUP4
000045ce: PUSH1 0x60
000045d0: DUP3
000045d1: PUSH2 0x45e2
000045d4: JUMPI
000045d5: PUSH2 0x45dd
000045d8: DUP3
000045d9: PUSH2 0x4629
000045dc: JUMP
000045dd: JUMPDEST
000045de: PUSH2 0x1cb2
000045e1: JUMP
000045e2: JUMPDEST
000045e3: DUP2
000045e4: MLOAD
000045e5: ISZERO
000045e6: DUP1
000045e7: ISZERO
000045e8: PUSH2 0x45f9
000045eb: JUMPI
000045ec: POP
000045ed: PUSH1 0x01
000045ef: PUSH1 0x01
000045f1: PUSH1 0xa0
000045f3: SHL
000045f4: SUB
000045f5: DUP5
000045f6: AND
000045f7: EXTCODESIZE
000045f8: ISZERO
000045f9: JUMPDEST
000045fa: ISZERO
000045fb: PUSH2 0x4622
000045fe: JUMPI
000045ff: PUSH1 0x40
00004601: MLOAD
00004602: PUSH4 0x9996b315
00004607: PUSH1 0xe0
00004609: SHL
0000460a: DUP2
0000460b: MSTORE
0000460c: PUSH1 0x01
0000460e: PUSH1 0x01
00004610: PUSH1 0xa0
00004612: SHL
00004613: SUB
00004614: DUP6
00004615: AND
00004616: PUSH1 0x04
00004618: DUP3
00004619: ADD
0000461a: MSTORE
0000461b: PUSH1 0x24
0000461d: ADD
0000461e: PUSH2 0x14fa
00004621: JUMP
00004622: JUMPDEST
00004623: POP
00004624: DUP1
00004625: PUSH2 0x1cb2
00004628: JUMP
00004629: JUMPDEST
0000462a: DUP1
0000462b: MLOAD
0000462c: ISZERO
0000462d: PUSH2 0x4639
00004630: JUMPI
00004631: DUP1
00004632: MLOAD
00004633: DUP1
00004634: DUP3
00004635: PUSH1 0x20
00004637: ADD
00004638: REVERT
00004639: JUMPDEST
0000463a: PUSH1 0x40
0000463c: MLOAD
0000463d: PUSH4 0x0a12f521
00004642: PUSH1 0xe1
00004644: SHL
00004645: DUP2
00004646: MSTORE
00004647: PUSH1 0x04
00004649: ADD
0000464a: PUSH1 0x40
0000464c: MLOAD
0000464d: DUP1
0000464e: SWAP2
0000464f: SUB
00004650: SWAP1
00004651: REVERT
00004652: JUMPDEST
00004653: POP
00004654: DUP1
00004655: SLOAD
00004656: PUSH0
00004657: DUP3
00004658: SSTORE
00004659: PUSH1 0x01
0000465b: ADD
0000465c: PUSH1 0x02
0000465e: SWAP1
0000465f: DIV
00004660: SWAP1
00004661: PUSH0
00004662: MSTORE
00004663: PUSH1 0x20
00004665: PUSH0
00004666: KECCAK256
00004667: SWAP1
00004668: DUP2
00004669: ADD
0000466a: SWAP1
0000466b: PUSH2 0x1848
0000466e: SWAP2
0000466f: SWAP1
00004670: JUMPDEST
00004671: DUP1
00004672: DUP3
00004673: GT
00004674: ISZERO
00004675: PUSH2 0x4683
00004678: JUMPI
00004679: PUSH0
0000467a: DUP2
0000467b: SSTORE
0000467c: PUSH1 0x01
0000467e: ADD
0000467f: PUSH2 0x4670
00004682: JUMP
00004683: JUMPDEST
00004684: POP
00004685: SWAP1
00004686: JUMP
00004687: JUMPDEST
00004688: PUSH0
00004689: PUSH1 0x20
0000468b: DUP3
0000468c: DUP5
0000468d: SUB
0000468e: SLT
0000468f: ISZERO
00004690: PUSH2 0x4697
00004693: JUMPI
00004694: PUSH0
00004695: DUP1
00004696: REVERT
00004697: JUMPDEST
00004698: DUP2
00004699: CALLDATALOAD
0000469a: PUSH1 0x01
0000469c: PUSH1 0x01
0000469e: PUSH1 0xe0
000046a0: SHL
000046a1: SUB
000046a2: NOT
000046a3: DUP2
000046a4: AND
000046a5: DUP2
000046a6: EQ
000046a7: PUSH2 0x1cb2
000046aa: JUMPI
000046ab: PUSH0
000046ac: DUP1
000046ad: REVERT
000046ae: JUMPDEST
000046af: PUSH4 0x4e487b71
000046b4: PUSH1 0xe0
000046b6: SHL
000046b7: PUSH0
000046b8: MSTORE
000046b9: PUSH1 0x41
000046bb: PUSH1 0x04
000046bd: MSTORE
000046be: PUSH1 0x24
000046c0: PUSH0
000046c1: REVERT
000046c2: JUMPDEST
000046c3: PUSH1 0x40
000046c5: MLOAD
000046c6: PUSH1 0x60
000046c8: DUP2
000046c9: ADD
000046ca: PUSH1 0x01
000046cc: PUSH1 0x01
000046ce: PUSH1 0x40
000046d0: SHL
000046d1: SUB
000046d2: DUP2
000046d3: GT
000046d4: DUP3
000046d5: DUP3
000046d6: LT
000046d7: OR
000046d8: ISZERO
000046d9: PUSH2 0x46e4
000046dc: JUMPI
000046dd: PUSH2 0x46e4
000046e0: PUSH2 0x46ae
000046e3: JUMP
000046e4: JUMPDEST
000046e5: PUSH1 0x40
000046e7: MSTORE
000046e8: SWAP1
000046e9: JUMP
000046ea: JUMPDEST
000046eb: PUSH1 0x40
000046ed: MLOAD
000046ee: PUSH1 0xa0
000046f0: DUP2
000046f1: ADD
000046f2: PUSH1 0x01
000046f4: PUSH1 0x01
000046f6: PUSH1 0x40
000046f8: SHL
000046f9: SUB
000046fa: DUP2
000046fb: GT
000046fc: DUP3
000046fd: DUP3
000046fe: LT
000046ff: OR
00004700: ISZERO
00004701: PUSH2 0x46e4
00004704: JUMPI
00004705: PUSH2 0x46e4
00004708: PUSH2 0x46ae
0000470b: JUMP
0000470c: JUMPDEST
0000470d: PUSH1 0x40
0000470f: MLOAD
00004710: PUSH2 0x01c0
00004713: DUP2
00004714: ADD
00004715: PUSH1 0x01
00004717: PUSH1 0x01
00004719: PUSH1 0x40
0000471b: SHL
0000471c: SUB
0000471d: DUP2
0000471e: GT
0000471f: DUP3
00004720: DUP3
00004721: LT
00004722: OR
00004723: ISZERO
00004724: PUSH2 0x46e4
00004727: JUMPI
00004728: PUSH2 0x46e4
0000472b: PUSH2 0x46ae
0000472e: JUMP
0000472f: JUMPDEST
00004730: PUSH1 0x40
00004732: MLOAD
00004733: PUSH1 0x1f
00004735: DUP3
00004736: ADD
00004737: PUSH1 0x1f
00004739: NOT
0000473a: AND
0000473b: DUP2
0000473c: ADD
0000473d: PUSH1 0x01
0000473f: PUSH1 0x01
00004741: PUSH1 0x40
00004743: SHL
00004744: SUB
00004745: DUP2
00004746: GT
00004747: DUP3
00004748: DUP3
00004749: LT
0000474a: OR
0000474b: ISZERO
0000474c: PUSH2 0x4757
0000474f: JUMPI
00004750: PUSH2 0x4757
00004753: PUSH2 0x46ae
00004756: JUMP
00004757: JUMPDEST
00004758: PUSH1 0x40
0000475a: MSTORE
0000475b: SWAP2
0000475c: SWAP1
0000475d: POP
0000475e: JUMP
0000475f: JUMPDEST
00004760: PUSH1 0x01
00004762: PUSH1 0x01
00004764: PUSH1 0xa0
00004766: SHL
00004767: SUB
00004768: DUP2
00004769: AND
0000476a: DUP2
0000476b: EQ
0000476c: PUSH2 0x1848
0000476f: JUMPI
00004770: PUSH0
00004771: DUP1
00004772: REVERT
00004773: JUMPDEST
00004774: DUP1
00004775: CALLDATALOAD
00004776: PUSH2 0x477e
00004779: DUP2
0000477a: PUSH2 0x475f
0000477d: JUMP
0000477e: JUMPDEST
0000477f: SWAP2
00004780: SWAP1
00004781: POP
00004782: JUMP
00004783: JUMPDEST
00004784: DUP1
00004785: CALLDATALOAD
00004786: PUSH1 0x01
00004788: PUSH1 0x01
0000478a: PUSH1 0x80
0000478c: SHL
0000478d: SUB
0000478e: NOT
0000478f: DUP2
00004790: AND
00004791: DUP2
00004792: EQ
00004793: PUSH2 0x477e
00004796: JUMPI
00004797: PUSH0
00004798: DUP1
00004799: REVERT
0000479a: JUMPDEST
0000479b: PUSH1 0x01
0000479d: PUSH1 0x01
0000479f: PUSH1 0xd0
000047a1: SHL
000047a2: SUB
000047a3: NOT
000047a4: DUP2
000047a5: AND
000047a6: DUP2
000047a7: EQ
000047a8: PUSH2 0x1848
000047ab: JUMPI
000047ac: PUSH0
000047ad: DUP1
000047ae: REVERT
000047af: JUMPDEST
000047b0: PUSH0
000047b1: PUSH1 0x60
000047b3: DUP3
000047b4: DUP5
000047b5: SUB
000047b6: SLT
000047b7: ISZERO
000047b8: PUSH2 0x47bf
000047bb: JUMPI
000047bc: PUSH0
000047bd: DUP1
000047be: REVERT
000047bf: JUMPDEST
000047c0: PUSH2 0x47c7
000047c3: PUSH2 0x46c2
000047c6: JUMP
000047c7: JUMPDEST
000047c8: SWAP1
000047c9: POP
000047ca: DUP2
000047cb: CALLDATALOAD
000047cc: PUSH2 0x47d4
000047cf: DUP2
000047d0: PUSH2 0x475f
000047d3: JUMP
000047d4: JUMPDEST
000047d5: DUP2
000047d6: MSTORE
000047d7: PUSH1 0x20
000047d9: DUP3
000047da: ADD
000047db: CALLDATALOAD
000047dc: PUSH2 0x47e4
000047df: DUP2
000047e0: PUSH2 0x479a
000047e3: JUMP
000047e4: JUMPDEST
000047e5: PUSH1 0x20
000047e7: DUP3
000047e8: ADD
000047e9: MSTORE
000047ea: PUSH1 0x40
000047ec: DUP3
000047ed: ADD
000047ee: CALLDATALOAD
000047ef: PUSH2 0x47f7
000047f2: DUP2
000047f3: PUSH2 0x479a
000047f6: JUMP
000047f7: JUMPDEST
000047f8: PUSH1 0x40
000047fa: DUP3
000047fb: ADD
000047fc: MSTORE
000047fd: SWAP3
000047fe: SWAP2
000047ff: POP
00004800: POP
00004801: JUMP
00004802: JUMPDEST
00004803: PUSH0
00004804: PUSH1 0x01
00004806: PUSH1 0x01
00004808: PUSH1 0x40
0000480a: SHL
0000480b: SUB
0000480c: DUP3
0000480d: GT
0000480e: ISZERO
0000480f: PUSH2 0x481a
00004812: JUMPI
00004813: PUSH2 0x481a
00004816: PUSH2 0x46ae
00004819: JUMP
0000481a: JUMPDEST
0000481b: POP
0000481c: PUSH1 0x05
0000481e: SHL
0000481f: PUSH1 0x20
00004821: ADD
00004822: SWAP1
00004823: JUMP
00004824: JUMPDEST
00004825: PUSH1 0x01
00004827: PUSH1 0x01
00004829: PUSH1 0x40
0000482b: SHL
0000482c: SUB
0000482d: DUP2
0000482e: AND
0000482f: DUP2
00004830: EQ
00004831: PUSH2 0x1848
00004834: JUMPI
00004835: PUSH0
00004836: DUP1
00004837: REVERT
00004838: JUMPDEST
00004839: DUP1
0000483a: ISZERO
0000483b: ISZERO
0000483c: DUP2
0000483d: EQ
0000483e: PUSH2 0x1848
00004841: JUMPI
00004842: PUSH0
00004843: DUP1
00004844: REVERT
00004845: JUMPDEST
00004846: PUSH0
00004847: PUSH1 0xa0
00004849: DUP3
0000484a: DUP5
0000484b: SUB
0000484c: SLT
0000484d: ISZERO
0000484e: PUSH2 0x4855
00004851: JUMPI
00004852: PUSH0
00004853: DUP1
00004854: REVERT
00004855: JUMPDEST
00004856: PUSH2 0x485d
00004859: PUSH2 0x46ea
0000485c: JUMP
0000485d: JUMPDEST
0000485e: SWAP1
0000485f: POP
00004860: PUSH2 0x4868
00004863: DUP3
00004864: PUSH2 0x4783
00004867: JUMP
00004868: JUMPDEST
00004869: DUP2
0000486a: MSTORE
0000486b: PUSH1 0x20
0000486d: DUP3
0000486e: ADD
0000486f: CALLDATALOAD
00004870: PUSH2 0x4878
00004873: DUP2
00004874: PUSH2 0x475f
00004877: JUMP
00004878: JUMPDEST
00004879: PUSH1 0x20
0000487b: DUP3
0000487c: ADD
0000487d: MSTORE
0000487e: PUSH1 0x40
00004880: DUP3
00004881: ADD
00004882: CALLDATALOAD
00004883: PUSH2 0x488b
00004886: DUP2
00004887: PUSH2 0x4824
0000488a: JUMP
0000488b: JUMPDEST
0000488c: PUSH1 0x40
0000488e: DUP3
0000488f: ADD
00004890: MSTORE
00004891: PUSH1 0x60
00004893: DUP3
00004894: ADD
00004895: CALLDATALOAD
00004896: PUSH2 0x489e
00004899: DUP2
0000489a: PUSH2 0x4824
0000489d: JUMP
0000489e: JUMPDEST
0000489f: PUSH1 0x60
000048a1: DUP3
000048a2: ADD
000048a3: MSTORE
000048a4: PUSH1 0x80
000048a6: DUP3
000048a7: ADD
000048a8: CALLDATALOAD
000048a9: PUSH2 0x48b1
000048ac: DUP2
000048ad: PUSH2 0x4838
000048b0: JUMP
000048b1: JUMPDEST
000048b2: PUSH1 0x80
000048b4: DUP3
000048b5: ADD
000048b6: MSTORE
000048b7: SWAP3
000048b8: SWAP2
000048b9: POP
000048ba: POP
000048bb: JUMP
000048bc: JUMPDEST
000048bd: PUSH0
000048be: DUP3
000048bf: PUSH1 0x1f
000048c1: DUP4
000048c2: ADD
000048c3: SLT
000048c4: PUSH2 0x48cb
000048c7: JUMPI
000048c8: PUSH0
000048c9: DUP1
000048ca: REVERT
000048cb: JUMPDEST
000048cc: DUP2
000048cd: CALLDATALOAD
000048ce: PUSH1 0x20
000048d0: PUSH2 0x48e0
000048d3: PUSH2 0x48db
000048d6: DUP4
000048d7: PUSH2 0x4802
000048da: JUMP
000048db: JUMPDEST
000048dc: PUSH2 0x472f
000048df: JUMP
000048e0: JUMPDEST
000048e1: DUP1
000048e2: DUP4
000048e3: DUP3
000048e4: MSTORE
000048e5: PUSH1 0x20
000048e7: DUP3
000048e8: ADD
000048e9: SWAP2
000048ea: POP
000048eb: PUSH1 0xa0
000048ed: PUSH1 0x20
000048ef: PUSH1 0xa0
000048f1: DUP7
000048f2: MUL
000048f3: DUP9
000048f4: ADD
000048f5: ADD
000048f6: SWAP5
000048f7: POP
000048f8: DUP8
000048f9: DUP6
000048fa: GT
000048fb: ISZERO
000048fc: PUSH2 0x4903
000048ff: JUMPI
00004900: PUSH0
00004901: DUP1
00004902: REVERT
00004903: JUMPDEST
00004904: PUSH1 0x20
00004906: DUP8
00004907: ADD
00004908: JUMPDEST
00004909: DUP6
0000490a: DUP2
0000490b: LT
0000490c: ISZERO
0000490d: PUSH2 0x4927
00004910: JUMPI
00004911: PUSH2 0x491a
00004914: DUP10
00004915: DUP3
00004916: PUSH2 0x4845
00004919: JUMP
0000491a: JUMPDEST
0000491b: DUP5
0000491c: MSTORE
0000491d: SWAP3
0000491e: DUP5
0000491f: ADD
00004920: SWAP3
00004921: DUP2
00004922: ADD
00004923: PUSH2 0x4908
00004926: JUMP
00004927: JUMPDEST
00004928: POP
00004929: SWAP1
0000492a: SWAP8
0000492b: SWAP7
0000492c: POP
0000492d: POP
0000492e: POP
0000492f: POP
00004930: POP
00004931: POP
00004932: POP
00004933: JUMP
00004934: JUMPDEST
00004935: DUP1
00004936: CALLDATALOAD
00004937: PUSH2 0xffff
0000493a: DUP2
0000493b: AND
0000493c: DUP2
0000493d: EQ
0000493e: PUSH2 0x477e
00004941: JUMPI
00004942: PUSH0
00004943: DUP1
00004944: REVERT
00004945: JUMPDEST
00004946: PUSH0
00004947: PUSH1 0x60
00004949: DUP3
0000494a: DUP5
0000494b: SUB
0000494c: SLT
0000494d: ISZERO
0000494e: PUSH2 0x4955
00004951: JUMPI
00004952: PUSH0
00004953: DUP1
00004954: REVERT
00004955: JUMPDEST
00004956: PUSH2 0x495d
00004959: PUSH2 0x46c2
0000495c: JUMP
0000495d: JUMPDEST
0000495e: SWAP1
0000495f: POP
00004960: PUSH2 0x4968
00004963: DUP3
00004964: PUSH2 0x4783
00004967: JUMP
00004968: JUMPDEST
00004969: DUP2
0000496a: MSTORE
0000496b: PUSH1 0x20
0000496d: DUP3
0000496e: ADD
0000496f: CALLDATALOAD
00004970: PUSH2 0x4978
00004973: DUP2
00004974: PUSH2 0x475f
00004977: JUMP
00004978: JUMPDEST
00004979: PUSH1 0x20
0000497b: DUP3
0000497c: ADD
0000497d: MSTORE
0000497e: PUSH2 0x47f7
00004981: PUSH1 0x40
00004983: DUP4
00004984: ADD
00004985: PUSH2 0x4934
00004988: JUMP
00004989: JUMPDEST
0000498a: PUSH0
0000498b: DUP3
0000498c: PUSH1 0x1f
0000498e: DUP4
0000498f: ADD
00004990: SLT
00004991: PUSH2 0x4998
00004994: JUMPI
00004995: PUSH0
00004996: DUP1
00004997: REVERT
00004998: JUMPDEST
00004999: DUP2
0000499a: CALLDATALOAD
0000499b: PUSH1 0x20
0000499d: PUSH2 0x49a8
000049a0: PUSH2 0x48db
000049a3: DUP4
000049a4: PUSH2 0x4802
000049a7: JUMP
000049a8: JUMPDEST
000049a9: DUP1
000049aa: DUP4
000049ab: DUP3
000049ac: MSTORE
000049ad: PUSH1 0x20
000049af: DUP3
000049b0: ADD
000049b1: SWAP2
000049b2: POP
000049b3: PUSH1 0x60
000049b5: PUSH1 0x20
000049b7: PUSH1 0x60
000049b9: DUP7
000049ba: MUL
000049bb: DUP9
000049bc: ADD
000049bd: ADD
000049be: SWAP5
000049bf: POP
000049c0: DUP8
000049c1: DUP6
000049c2: GT
000049c3: ISZERO
000049c4: PUSH2 0x49cb
000049c7: JUMPI
000049c8: PUSH0
000049c9: DUP1
000049ca: REVERT
000049cb: JUMPDEST
000049cc: PUSH1 0x20
000049ce: DUP8
000049cf: ADD
000049d0: JUMPDEST
000049d1: DUP6
000049d2: DUP2
000049d3: LT
000049d4: ISZERO
000049d5: PUSH2 0x4927
000049d8: JUMPI
000049d9: PUSH2 0x49e2
000049dc: DUP10
000049dd: DUP3
000049de: PUSH2 0x4945
000049e1: JUMP
000049e2: JUMPDEST
000049e3: DUP5
000049e4: MSTORE
000049e5: SWAP3
000049e6: DUP5
000049e7: ADD
000049e8: SWAP3
000049e9: DUP2
000049ea: ADD
000049eb: PUSH2 0x49d0
000049ee: JUMP
000049ef: JUMPDEST
000049f0: PUSH0
000049f1: PUSH1 0x20
000049f3: DUP3
000049f4: DUP5
000049f5: SUB
000049f6: SLT
000049f7: ISZERO
000049f8: PUSH2 0x49ff
000049fb: JUMPI
000049fc: PUSH0
000049fd: DUP1
000049fe: REVERT
000049ff: JUMPDEST
00004a00: DUP2
00004a01: CALLDATALOAD
00004a02: PUSH1 0x01
00004a04: PUSH1 0x01
00004a06: PUSH1 0x40
00004a08: SHL
00004a09: SUB
00004a0a: DUP1
00004a0b: DUP3
00004a0c: GT
00004a0d: ISZERO
00004a0e: PUSH2 0x4a15
00004a11: JUMPI
00004a12: PUSH0
00004a13: DUP1
00004a14: REVERT
00004a15: JUMPDEST
00004a16: SWAP1
00004a17: DUP4
00004a18: ADD
00004a19: SWAP1
00004a1a: PUSH2 0x0200
00004a1d: DUP3
00004a1e: DUP7
00004a1f: SUB
00004a20: SLT
00004a21: ISZERO
00004a22: PUSH2 0x4a29
00004a25: JUMPI
00004a26: PUSH0
00004a27: DUP1
00004a28: REVERT
00004a29: JUMPDEST
00004a2a: PUSH2 0x4a31
00004a2d: PUSH2 0x470c
00004a30: JUMP
00004a31: JUMPDEST
00004a32: PUSH2 0x4a3a
00004a35: DUP4
00004a36: PUSH2 0x4773
00004a39: JUMP
00004a3a: JUMPDEST
00004a3b: DUP2
00004a3c: MSTORE
00004a3d: PUSH2 0x4a48
00004a40: PUSH1 0x20
00004a42: DUP5
00004a43: ADD
00004a44: PUSH2 0x4783
00004a47: JUMP
00004a48: JUMPDEST
00004a49: PUSH1 0x20
00004a4b: DUP3
00004a4c: ADD
00004a4d: MSTORE
00004a4e: PUSH2 0x4a5a
00004a51: DUP7
00004a52: PUSH1 0x40
00004a54: DUP6
00004a55: ADD
00004a56: PUSH2 0x47af
00004a59: JUMP
00004a5a: JUMPDEST
00004a5b: PUSH1 0x40
00004a5d: DUP3
00004a5e: ADD
00004a5f: MSTORE
00004a60: PUSH2 0x4a6b
00004a63: PUSH1 0xa0
00004a65: DUP5
00004a66: ADD
00004a67: PUSH2 0x4773
00004a6a: JUMP
00004a6b: JUMPDEST
00004a6c: PUSH1 0x60
00004a6e: DUP3
00004a6f: ADD
00004a70: MSTORE
00004a71: PUSH1 0xc0
00004a73: DUP4
00004a74: ADD
00004a75: CALLDATALOAD
00004a76: DUP3
00004a77: DUP2
00004a78: GT
00004a79: ISZERO
00004a7a: PUSH2 0x4a81
00004a7d: JUMPI
00004a7e: PUSH0
00004a7f: DUP1
00004a80: REVERT
00004a81: JUMPDEST
00004a82: PUSH2 0x4a8d
00004a85: DUP8
00004a86: DUP3
00004a87: DUP7
00004a88: ADD
00004a89: PUSH2 0x48bc
00004a8c: JUMP
00004a8d: JUMPDEST
00004a8e: PUSH1 0x80
00004a90: DUP4
00004a91: ADD
00004a92: MSTORE
00004a93: POP
00004a94: PUSH1 0xe0
00004a96: DUP4
00004a97: ADD
00004a98: CALLDATALOAD
00004a99: DUP3
00004a9a: DUP2
00004a9b: GT
00004a9c: ISZERO
00004a9d: PUSH2 0x4aa4
00004aa0: JUMPI
00004aa1: PUSH0
00004aa2: DUP1
00004aa3: REVERT
00004aa4: JUMPDEST
00004aa5: PUSH2 0x4ab0
00004aa8: DUP8
00004aa9: DUP3
00004aaa: DUP7
00004aab: ADD
00004aac: PUSH2 0x4989
00004aaf: JUMP
00004ab0: JUMPDEST
00004ab1: PUSH1 0xa0
00004ab3: DUP4
00004ab4: ADD
00004ab5: MSTORE
00004ab6: POP
00004ab7: PUSH2 0x0100
00004aba: SWAP2
00004abb: POP
00004abc: PUSH2 0x4ac6
00004abf: DUP3
00004ac0: DUP5
00004ac1: ADD
00004ac2: PUSH2 0x4773
00004ac5: JUMP
00004ac6: JUMPDEST
00004ac7: PUSH1 0xc0
00004ac9: DUP3
00004aca: ADD
00004acb: MSTORE
00004acc: PUSH2 0x0120
00004acf: PUSH2 0x4ad9
00004ad2: DUP2
00004ad3: DUP6
00004ad4: ADD
00004ad5: PUSH2 0x4773
00004ad8: JUMP
00004ad9: JUMPDEST
00004ada: PUSH1 0xe0
00004adc: DUP4
00004add: ADD
00004ade: MSTORE
00004adf: PUSH2 0x0140
00004ae2: PUSH2 0x4aec
00004ae5: DUP2
00004ae6: DUP7
00004ae7: ADD
00004ae8: PUSH2 0x4773
00004aeb: JUMP
00004aec: JUMPDEST
00004aed: DUP5
00004aee: DUP5
00004aef: ADD
00004af0: MSTORE
00004af1: PUSH2 0x0160
00004af4: SWAP4
00004af5: POP
00004af6: PUSH2 0x4b00
00004af9: DUP5
00004afa: DUP7
00004afb: ADD
00004afc: PUSH2 0x4773
00004aff: JUMP
00004b00: JUMPDEST
00004b01: DUP3
00004b02: DUP5
00004b03: ADD
00004b04: MSTORE
00004b05: PUSH2 0x0180
00004b08: SWAP2
00004b09: POP
00004b0a: PUSH2 0x4b14
00004b0d: DUP3
00004b0e: DUP7
00004b0f: ADD
00004b10: PUSH2 0x4773
00004b13: JUMP
00004b14: JUMPDEST
00004b15: SWAP1
00004b16: DUP4
00004b17: ADD
00004b18: MSTORE
00004b19: PUSH2 0x01a0
00004b1c: PUSH2 0x4b26
00004b1f: DUP6
00004b20: DUP3
00004b21: ADD
00004b22: PUSH2 0x4773
00004b25: JUMP
00004b26: JUMPDEST
00004b27: DUP5
00004b28: DUP5
00004b29: ADD
00004b2a: MSTORE
00004b2b: PUSH2 0x01c0
00004b2e: DUP6
00004b2f: ADD
00004b30: CALLDATALOAD
00004b31: DUP3
00004b32: DUP5
00004b33: ADD
00004b34: MSTORE
00004b35: PUSH2 0x4b41
00004b38: PUSH2 0x01e0
00004b3b: DUP7
00004b3c: ADD
00004b3d: PUSH2 0x4934
00004b40: JUMP
00004b41: JUMPDEST
00004b42: SWAP1
00004b43: DUP4
00004b44: ADD
00004b45: MSTORE
00004b46: POP
00004b47: SWAP6
00004b48: SWAP5
00004b49: POP
00004b4a: POP
00004b4b: POP
00004b4c: POP
00004b4d: POP
00004b4e: JUMP
00004b4f: JUMPDEST
00004b50: PUSH0
00004b51: PUSH1 0x20
00004b53: DUP3
00004b54: DUP5
00004b55: SUB
00004b56: SLT
00004b57: ISZERO
00004b58: PUSH2 0x4b5f
00004b5b: JUMPI
00004b5c: PUSH0
00004b5d: DUP1
00004b5e: REVERT
00004b5f: JUMPDEST
00004b60: POP
00004b61: CALLDATALOAD
00004b62: SWAP2
00004b63: SWAP1
00004b64: POP
00004b65: JUMP
00004b66: JUMPDEST
00004b67: PUSH0
00004b68: DUP1
00004b69: DUP4
00004b6a: PUSH1 0x1f
00004b6c: DUP5
00004b6d: ADD
00004b6e: SLT
00004b6f: PUSH2 0x4b76
00004b72: JUMPI
00004b73: PUSH0
00004b74: DUP1
00004b75: REVERT
00004b76: JUMPDEST
00004b77: POP
00004b78: DUP2
00004b79: CALLDATALOAD
00004b7a: PUSH1 0x01
00004b7c: PUSH1 0x01
00004b7e: PUSH1 0x40
00004b80: SHL
00004b81: SUB
00004b82: DUP2
00004b83: GT
00004b84: ISZERO
00004b85: PUSH2 0x4b8c
00004b88: JUMPI
00004b89: PUSH0
00004b8a: DUP1
00004b8b: REVERT
00004b8c: JUMPDEST
00004b8d: PUSH1 0x20
00004b8f: DUP4
00004b90: ADD
00004b91: SWAP2
00004b92: POP
00004b93: DUP4
00004b94: PUSH1 0x20
00004b96: DUP3
00004b97: PUSH1 0x05
00004b99: SHL
00004b9a: DUP6
00004b9b: ADD
00004b9c: ADD
00004b9d: GT
00004b9e: ISZERO
00004b9f: PUSH2 0x4ba6
00004ba2: JUMPI
00004ba3: PUSH0
00004ba4: DUP1
00004ba5: REVERT
00004ba6: JUMPDEST
00004ba7: SWAP3
00004ba8: POP
00004ba9: SWAP3
00004baa: SWAP1
00004bab: POP
00004bac: JUMP
00004bad: JUMPDEST
00004bae: PUSH0
00004baf: DUP1
00004bb0: PUSH1 0x20
00004bb2: DUP4
00004bb3: DUP6
00004bb4: SUB
00004bb5: SLT
00004bb6: ISZERO
00004bb7: PUSH2 0x4bbe
00004bba: JUMPI
00004bbb: PUSH0
00004bbc: DUP1
00004bbd: REVERT
00004bbe: JUMPDEST
00004bbf: DUP3
00004bc0: CALLDATALOAD
00004bc1: PUSH1 0x01
00004bc3: PUSH1 0x01
00004bc5: PUSH1 0x40
00004bc7: SHL
00004bc8: SUB
00004bc9: DUP2
00004bca: GT
00004bcb: ISZERO
00004bcc: PUSH2 0x4bd3
00004bcf: JUMPI
00004bd0: PUSH0
00004bd1: DUP1
00004bd2: REVERT
00004bd3: JUMPDEST
00004bd4: PUSH2 0x4bdf
00004bd7: DUP6
00004bd8: DUP3
00004bd9: DUP7
00004bda: ADD
00004bdb: PUSH2 0x4b66
00004bde: JUMP
00004bdf: JUMPDEST
00004be0: SWAP1
00004be1: SWAP7
00004be2: SWAP1
00004be3: SWAP6
00004be4: POP
00004be5: SWAP4
00004be6: POP
00004be7: POP
00004be8: POP
00004be9: POP
00004bea: JUMP
00004beb: JUMPDEST
00004bec: PUSH0
00004bed: DUP2
00004bee: MLOAD
00004bef: DUP1
00004bf0: DUP5
00004bf1: MSTORE
00004bf2: PUSH1 0x20
00004bf4: DUP1
00004bf5: DUP6
00004bf6: ADD
00004bf7: SWAP5
00004bf8: POP
00004bf9: PUSH1 0x20
00004bfb: DUP5
00004bfc: ADD
00004bfd: PUSH0
00004bfe: JUMPDEST
00004bff: DUP4
00004c00: DUP2
00004c01: LT
00004c02: ISZERO
00004c03: PUSH2 0x4c1a
00004c06: JUMPI
00004c07: DUP2
00004c08: MLOAD
00004c09: DUP8
00004c0a: MSTORE
00004c0b: SWAP6
00004c0c: DUP3
00004c0d: ADD
00004c0e: SWAP6
00004c0f: SWAP1
00004c10: DUP3
00004c11: ADD
00004c12: SWAP1
00004c13: PUSH1 0x01
00004c15: ADD
00004c16: PUSH2 0x4bfe
00004c19: JUMP
00004c1a: JUMPDEST
00004c1b: POP
00004c1c: SWAP5
00004c1d: SWAP6
00004c1e: SWAP5
00004c1f: POP
00004c20: POP
00004c21: POP
00004c22: POP
00004c23: POP
00004c24: JUMP
00004c25: JUMPDEST
00004c26: PUSH1 0x20
00004c28: DUP2
00004c29: MSTORE
00004c2a: PUSH0
00004c2b: PUSH2 0x1cb2
00004c2e: PUSH1 0x20
00004c30: DUP4
00004c31: ADD
00004c32: DUP5
00004c33: PUSH2 0x4beb
00004c36: JUMP
00004c37: JUMPDEST
00004c38: PUSH0
00004c39: DUP1
00004c3a: PUSH1 0x40
00004c3c: DUP4
00004c3d: DUP6
00004c3e: SUB
00004c3f: SLT
00004c40: ISZERO
00004c41: PUSH2 0x4c48
00004c44: JUMPI
00004c45: PUSH0
00004c46: DUP1
00004c47: REVERT
00004c48: JUMPDEST
00004c49: DUP3
00004c4a: CALLDATALOAD
00004c4b: SWAP2
00004c4c: POP
00004c4d: PUSH1 0x20
00004c4f: DUP4
00004c50: ADD
00004c51: CALLDATALOAD
00004c52: PUSH2 0x4c5a
00004c55: DUP2
00004c56: PUSH2 0x475f
00004c59: JUMP
00004c5a: JUMPDEST
00004c5b: DUP1
00004c5c: SWAP2
00004c5d: POP
00004c5e: POP
00004c5f: SWAP3
00004c60: POP
00004c61: SWAP3
00004c62: SWAP1
00004c63: POP
00004c64: JUMP
00004c65: JUMPDEST
00004c66: PUSH0
00004c67: DUP1
00004c68: PUSH0
00004c69: PUSH1 0x40
00004c6b: DUP5
00004c6c: DUP7
00004c6d: SUB
00004c6e: SLT
00004c6f: ISZERO
00004c70: PUSH2 0x4c77
00004c73: JUMPI
00004c74: PUSH0
00004c75: DUP1
00004c76: REVERT
00004c77: JUMPDEST
00004c78: DUP4
00004c79: CALLDATALOAD
00004c7a: PUSH1 0x01
00004c7c: PUSH1 0x01
00004c7e: PUSH1 0x40
00004c80: SHL
00004c81: SUB
00004c82: DUP1
00004c83: DUP3
00004c84: GT
00004c85: ISZERO
00004c86: PUSH2 0x4c8d
00004c89: JUMPI
00004c8a: PUSH0
00004c8b: DUP1
00004c8c: REVERT
00004c8d: JUMPDEST
00004c8e: DUP2
00004c8f: DUP7
00004c90: ADD
00004c91: SWAP2
00004c92: POP
00004c93: DUP7
00004c94: PUSH1 0x1f
00004c96: DUP4
00004c97: ADD
00004c98: SLT
00004c99: PUSH2 0x4ca0
00004c9c: JUMPI
00004c9d: PUSH0
00004c9e: DUP1
00004c9f: REVERT
00004ca0: JUMPDEST
00004ca1: DUP2
00004ca2: CALLDATALOAD
00004ca3: DUP2
00004ca4: DUP2
00004ca5: GT
00004ca6: ISZERO
00004ca7: PUSH2 0x4cae
00004caa: JUMPI
00004cab: PUSH0
00004cac: DUP1
00004cad: REVERT
00004cae: JUMPDEST
00004caf: DUP8
00004cb0: PUSH1 0x20
00004cb2: PUSH1 0xa0
00004cb4: DUP4
00004cb5: MUL
00004cb6: DUP6
00004cb7: ADD
00004cb8: ADD
00004cb9: GT
00004cba: ISZERO
00004cbb: PUSH2 0x4cc2
00004cbe: JUMPI
00004cbf: PUSH0
00004cc0: DUP1
00004cc1: REVERT
00004cc2: JUMPDEST
00004cc3: PUSH1 0x20
00004cc5: SWAP3
00004cc6: DUP4
00004cc7: ADD
00004cc8: SWAP9
00004cc9: SWAP1
00004cca: SWAP8
00004ccb: POP
00004ccc: SWAP6
00004ccd: SWAP1
00004cce: SWAP2
00004ccf: ADD
00004cd0: CALLDATALOAD
00004cd1: SWAP5
00004cd2: SWAP4
00004cd3: POP
00004cd4: POP
00004cd5: POP
00004cd6: POP
00004cd7: JUMP
00004cd8: JUMPDEST
00004cd9: PUSH0
00004cda: PUSH1 0x20
00004cdc: DUP3
00004cdd: DUP5
00004cde: SUB
00004cdf: SLT
00004ce0: ISZERO
00004ce1: PUSH2 0x4ce8
00004ce4: JUMPI
00004ce5: PUSH0
00004ce6: DUP1
00004ce7: REVERT
00004ce8: JUMPDEST
00004ce9: DUP2
00004cea: CALLDATALOAD
00004ceb: PUSH2 0x1cb2
00004cee: DUP2
00004cef: PUSH2 0x4838
00004cf2: JUMP
00004cf3: JUMPDEST
00004cf4: PUSH0
00004cf5: DUP1
00004cf6: PUSH0
00004cf7: DUP1
00004cf8: PUSH0
00004cf9: PUSH1 0x60
00004cfb: DUP7
00004cfc: DUP9
00004cfd: SUB
00004cfe: SLT
00004cff: ISZERO
00004d00: PUSH2 0x4d07
00004d03: JUMPI
00004d04: PUSH0
00004d05: DUP1
00004d06: REVERT
00004d07: JUMPDEST
00004d08: DUP6
00004d09: CALLDATALOAD
00004d0a: PUSH1 0x01
00004d0c: PUSH1 0x01
00004d0e: PUSH1 0x40
00004d10: SHL
00004d11: SUB
00004d12: DUP1
00004d13: DUP3
00004d14: GT
00004d15: ISZERO
00004d16: PUSH2 0x4d1d
00004d19: JUMPI
00004d1a: PUSH0
00004d1b: DUP1
00004d1c: REVERT
00004d1d: JUMPDEST
00004d1e: PUSH2 0x4d29
00004d21: DUP10
00004d22: DUP4
00004d23: DUP11
00004d24: ADD
00004d25: PUSH2 0x4b66
00004d28: JUMP
00004d29: JUMPDEST
00004d2a: SWAP1
00004d2b: SWAP8
00004d2c: POP
00004d2d: SWAP6
00004d2e: POP
00004d2f: PUSH1 0x20
00004d31: DUP9
00004d32: ADD
00004d33: CALLDATALOAD
00004d34: SWAP2
00004d35: POP
00004d36: DUP1
00004d37: DUP3
00004d38: GT
00004d39: ISZERO
00004d3a: PUSH2 0x4d41
00004d3d: JUMPI
00004d3e: PUSH0
00004d3f: DUP1
00004d40: REVERT
00004d41: JUMPDEST
00004d42: POP
00004d43: PUSH2 0x4d4e
00004d46: DUP9
00004d47: DUP3
00004d48: DUP10
00004d49: ADD
00004d4a: PUSH2 0x4b66
00004d4d: JUMP
00004d4e: JUMPDEST
00004d4f: SWAP1
00004d50: SWAP5
00004d51: POP
00004d52: SWAP3
00004d53: POP
00004d54: POP
00004d55: PUSH1 0x40
00004d57: DUP7
00004d58: ADD
00004d59: CALLDATALOAD
00004d5a: PUSH2 0x4d62
00004d5d: DUP2
00004d5e: PUSH2 0x4838
00004d61: JUMP
00004d62: JUMPDEST
00004d63: DUP1
00004d64: SWAP2
00004d65: POP
00004d66: POP
00004d67: SWAP3
00004d68: SWAP6
00004d69: POP
00004d6a: SWAP3
00004d6b: SWAP6
00004d6c: SWAP1
00004d6d: SWAP4
00004d6e: POP
00004d6f: JUMP
00004d70: JUMPDEST
00004d71: PUSH0
00004d72: DUP1
00004d73: DUP4
00004d74: PUSH1 0x1f
00004d76: DUP5
00004d77: ADD
00004d78: SLT
00004d79: PUSH2 0x4d80
00004d7c: JUMPI
00004d7d: PUSH0
00004d7e: DUP1
00004d7f: REVERT
00004d80: JUMPDEST
00004d81: POP
00004d82: DUP2
00004d83: CALLDATALOAD
00004d84: PUSH1 0x01
00004d86: PUSH1 0x01
00004d88: PUSH1 0x40
00004d8a: SHL
00004d8b: SUB
00004d8c: DUP2
00004d8d: GT
00004d8e: ISZERO
00004d8f: PUSH2 0x4d96
00004d92: JUMPI
00004d93: PUSH0
00004d94: DUP1
00004d95: REVERT
00004d96: JUMPDEST
00004d97: PUSH1 0x20
00004d99: DUP4
00004d9a: ADD
00004d9b: SWAP2
00004d9c: POP
00004d9d: DUP4
00004d9e: PUSH1 0x20
00004da0: PUSH1 0x60
00004da2: DUP4
00004da3: MUL
00004da4: DUP6
00004da5: ADD
00004da6: ADD
00004da7: GT
00004da8: ISZERO
00004da9: PUSH2 0x4ba6
00004dac: JUMPI
00004dad: PUSH0
00004dae: DUP1
00004daf: REVERT
00004db0: JUMPDEST
00004db1: PUSH0
00004db2: DUP1
00004db3: PUSH1 0x20
00004db5: DUP4
00004db6: DUP6
00004db7: SUB
00004db8: SLT
00004db9: ISZERO
00004dba: PUSH2 0x4dc1
00004dbd: JUMPI
00004dbe: PUSH0
00004dbf: DUP1
00004dc0: REVERT
00004dc1: JUMPDEST
00004dc2: DUP3
00004dc3: CALLDATALOAD
00004dc4: PUSH1 0x01
00004dc6: PUSH1 0x01
00004dc8: PUSH1 0x40
00004dca: SHL
00004dcb: SUB
00004dcc: DUP2
00004dcd: GT
00004dce: ISZERO
00004dcf: PUSH2 0x4dd6
00004dd2: JUMPI
00004dd3: PUSH0
00004dd4: DUP1
00004dd5: REVERT
00004dd6: JUMPDEST
00004dd7: PUSH2 0x4bdf
00004dda: DUP6
00004ddb: DUP3
00004ddc: DUP7
00004ddd: ADD
00004dde: PUSH2 0x4d70
00004de1: JUMP
00004de2: JUMPDEST
00004de3: PUSH1 0x20
00004de5: DUP1
00004de6: DUP3
00004de7: MSTORE
00004de8: DUP3
00004de9: MLOAD
00004dea: DUP3
00004deb: DUP3
00004dec: ADD
00004ded: DUP2
00004dee: SWAP1
00004def: MSTORE
00004df0: PUSH0
00004df1: SWAP2
00004df2: SWAP1
00004df3: PUSH1 0x40
00004df5: SWAP1
00004df6: DUP2
00004df7: DUP6
00004df8: ADD
00004df9: SWAP1
00004dfa: DUP7
00004dfb: DUP5
00004dfc: ADD
00004dfd: DUP6
00004dfe: JUMPDEST
00004dff: DUP3
00004e00: DUP2
00004e01: LT
00004e02: ISZERO
00004e03: PUSH2 0x4e2c
00004e06: JUMPI
00004e07: DUP2
00004e08: MLOAD
00004e09: DUP1
00004e0a: MLOAD
00004e0b: DUP6
00004e0c: MSTORE
00004e0d: DUP7
00004e0e: ADD
00004e0f: MLOAD
00004e10: PUSH1 0x01
00004e12: PUSH1 0x01
00004e14: PUSH1 0x40
00004e16: SHL
00004e17: SUB
00004e18: AND
00004e19: DUP7
00004e1a: DUP6
00004e1b: ADD
00004e1c: MSTORE
00004e1d: SWAP3
00004e1e: DUP5
00004e1f: ADD
00004e20: SWAP3
00004e21: SWAP1
00004e22: DUP6
00004e23: ADD
00004e24: SWAP1
00004e25: PUSH1 0x01
00004e27: ADD
00004e28: PUSH2 0x4dfe
00004e2b: JUMP
00004e2c: JUMPDEST
00004e2d: POP
00004e2e: SWAP2
00004e2f: SWAP8
00004e30: SWAP7
00004e31: POP
00004e32: POP
00004e33: POP
00004e34: POP
00004e35: POP
00004e36: POP
00004e37: POP
00004e38: JUMP
00004e39: JUMPDEST
00004e3a: PUSH0
00004e3b: PUSH1 0x20
00004e3d: DUP3
00004e3e: DUP5
00004e3f: SUB
00004e40: SLT
00004e41: ISZERO
00004e42: PUSH2 0x4e49
00004e45: JUMPI
00004e46: PUSH0
00004e47: DUP1
00004e48: REVERT
00004e49: JUMPDEST
00004e4a: DUP2
00004e4b: CALLDATALOAD
00004e4c: PUSH2 0x1cb2
00004e4f: DUP2
00004e50: PUSH2 0x475f
00004e53: JUMP
00004e54: JUMPDEST
00004e55: PUSH0
00004e56: DUP1
00004e57: PUSH0
00004e58: PUSH1 0x60
00004e5a: DUP5
00004e5b: DUP7
00004e5c: SUB
00004e5d: SLT
00004e5e: ISZERO
00004e5f: PUSH2 0x4e66
00004e62: JUMPI
00004e63: PUSH0
00004e64: DUP1
00004e65: REVERT
00004e66: JUMPDEST
00004e67: DUP4
00004e68: CALLDATALOAD
00004e69: PUSH2 0x4e71
00004e6c: DUP2
00004e6d: PUSH2 0x475f
00004e70: JUMP
00004e71: JUMPDEST
00004e72: SWAP3
00004e73: POP
00004e74: PUSH1 0x20
00004e76: DUP5
00004e77: ADD
00004e78: CALLDATALOAD
00004e79: PUSH2 0x4e81
00004e7c: DUP2
00004e7d: PUSH2 0x475f
00004e80: JUMP
00004e81: JUMPDEST
00004e82: SWAP3
00004e83: SWAP6
00004e84: SWAP3
00004e85: SWAP5
00004e86: POP
00004e87: POP
00004e88: POP
00004e89: PUSH1 0x40
00004e8b: SWAP2
00004e8c: SWAP1
00004e8d: SWAP2
00004e8e: ADD
00004e8f: CALLDATALOAD
00004e90: SWAP1
00004e91: JUMP
00004e92: JUMPDEST
00004e93: PUSH0
00004e94: PUSH1 0x60
00004e96: DUP3
00004e97: DUP5
00004e98: SUB
00004e99: SLT
00004e9a: ISZERO
00004e9b: PUSH2 0x4ea2
00004e9e: JUMPI
00004e9f: PUSH0
00004ea0: DUP1
00004ea1: REVERT
00004ea2: JUMPDEST
00004ea3: POP
00004ea4: SWAP2
00004ea5: SWAP1
00004ea6: POP
00004ea7: JUMP
00004ea8: JUMPDEST
00004ea9: PUSH1 0x20
00004eab: DUP1
00004eac: DUP3
00004ead: MSTORE
00004eae: DUP3
00004eaf: MLOAD
00004eb0: DUP3
00004eb1: DUP3
00004eb2: ADD
00004eb3: DUP2
00004eb4: SWAP1
00004eb5: MSTORE
00004eb6: PUSH0
00004eb7: SWAP2
00004eb8: SWAP1
00004eb9: PUSH1 0x40
00004ebb: SWAP1
00004ebc: DUP2
00004ebd: DUP6
00004ebe: ADD
00004ebf: SWAP1
00004ec0: DUP7
00004ec1: DUP5
00004ec2: ADD
00004ec3: DUP6
00004ec4: JUMPDEST
00004ec5: DUP3
00004ec6: DUP2
00004ec7: LT
00004ec8: ISZERO
00004ec9: PUSH2 0x4e2c
00004ecc: JUMPI
00004ecd: DUP2
00004ece: MLOAD
00004ecf: DUP1
00004ed0: MLOAD
00004ed1: PUSH1 0x01
00004ed3: PUSH1 0x01
00004ed5: PUSH1 0xa0
00004ed7: SHL
00004ed8: SUB
00004ed9: AND
00004eda: DUP6
00004edb: MSTORE
00004edc: DUP7
00004edd: ADD
00004ede: MLOAD
00004edf: PUSH2 0xffff
00004ee2: AND
00004ee3: DUP7
00004ee4: DUP6
00004ee5: ADD
00004ee6: MSTORE
00004ee7: SWAP3
00004ee8: DUP5
00004ee9: ADD
00004eea: SWAP3
00004eeb: SWAP1
00004eec: DUP6
00004eed: ADD
00004eee: SWAP1
00004eef: PUSH1 0x01
00004ef1: ADD
00004ef2: PUSH2 0x4ec4
00004ef5: JUMP
00004ef6: JUMPDEST
00004ef7: PUSH0
00004ef8: JUMPDEST
00004ef9: DUP4
00004efa: DUP2
00004efb: LT
00004efc: ISZERO
00004efd: PUSH2 0x4f10
00004f00: JUMPI
00004f01: DUP2
00004f02: DUP2
00004f03: ADD
00004f04: MLOAD
00004f05: DUP4
00004f06: DUP3
00004f07: ADD
00004f08: MSTORE
00004f09: PUSH1 0x20
00004f0b: ADD
00004f0c: PUSH2 0x4ef8
00004f0f: JUMP
00004f10: JUMPDEST
00004f11: POP
00004f12: POP
00004f13: PUSH0
00004f14: SWAP2
00004f15: ADD
00004f16: MSTORE
00004f17: JUMP
00004f18: JUMPDEST
00004f19: PUSH0
00004f1a: DUP2
00004f1b: MLOAD
00004f1c: DUP1
00004f1d: DUP5
00004f1e: MSTORE
00004f1f: PUSH2 0x4f2f
00004f22: DUP2
00004f23: PUSH1 0x20
00004f25: DUP7
00004f26: ADD
00004f27: PUSH1 0x20
00004f29: DUP7
00004f2a: ADD
00004f2b: PUSH2 0x4ef6
00004f2e: JUMP
00004f2f: JUMPDEST
00004f30: PUSH1 0x1f
00004f32: ADD
00004f33: PUSH1 0x1f
00004f35: NOT
00004f36: AND
00004f37: SWAP3
00004f38: SWAP1
00004f39: SWAP3
00004f3a: ADD
00004f3b: PUSH1 0x20
00004f3d: ADD
00004f3e: SWAP3
00004f3f: SWAP2
00004f40: POP
00004f41: POP
00004f42: JUMP
00004f43: JUMPDEST
00004f44: PUSH1 0xff
00004f46: PUSH1 0xf8
00004f48: SHL
00004f49: DUP9
00004f4a: AND
00004f4b: DUP2
00004f4c: MSTORE
00004f4d: PUSH1 0xe0
00004f4f: PUSH1 0x20
00004f51: DUP3
00004f52: ADD
00004f53: MSTORE
00004f54: PUSH0
00004f55: PUSH2 0x4f61
00004f58: PUSH1 0xe0
00004f5a: DUP4
00004f5b: ADD
00004f5c: DUP10
00004f5d: PUSH2 0x4f18
00004f60: JUMP
00004f61: JUMPDEST
00004f62: DUP3
00004f63: DUP2
00004f64: SUB
00004f65: PUSH1 0x40
00004f67: DUP5
00004f68: ADD
00004f69: MSTORE
00004f6a: PUSH2 0x4f73
00004f6d: DUP2
00004f6e: DUP10
00004f6f: PUSH2 0x4f18
00004f72: JUMP
00004f73: JUMPDEST
00004f74: PUSH1 0x60
00004f76: DUP5
00004f77: ADD
00004f78: DUP9
00004f79: SWAP1
00004f7a: MSTORE
00004f7b: PUSH1 0x01
00004f7d: PUSH1 0x01
00004f7f: PUSH1 0xa0
00004f81: SHL
00004f82: SUB
00004f83: DUP8
00004f84: AND
00004f85: PUSH1 0x80
00004f87: DUP6
00004f88: ADD
00004f89: MSTORE
00004f8a: PUSH1 0xa0
00004f8c: DUP5
00004f8d: ADD
00004f8e: DUP7
00004f8f: SWAP1
00004f90: MSTORE
00004f91: DUP4
00004f92: DUP2
00004f93: SUB
00004f94: PUSH1 0xc0
00004f96: DUP6
00004f97: ADD
00004f98: MSTORE
00004f99: SWAP1
00004f9a: POP
00004f9b: PUSH2 0x4fa4
00004f9e: DUP2
00004f9f: DUP6
00004fa0: PUSH2 0x4beb
00004fa3: JUMP
00004fa4: JUMPDEST
00004fa5: SWAP11
00004fa6: SWAP10
00004fa7: POP
00004fa8: POP
00004fa9: POP
00004faa: POP
00004fab: POP
00004fac: POP
00004fad: POP
00004fae: POP
00004faf: POP
00004fb0: POP
00004fb1: JUMP
00004fb2: JUMPDEST
00004fb3: PUSH0
00004fb4: DUP1
00004fb5: PUSH1 0x40
00004fb7: DUP4
00004fb8: DUP6
00004fb9: SUB
00004fba: SLT
00004fbb: ISZERO
00004fbc: PUSH2 0x4fc3
00004fbf: JUMPI
00004fc0: PUSH0
00004fc1: DUP1
00004fc2: REVERT
00004fc3: JUMPDEST
00004fc4: POP
00004fc5: POP
00004fc6: DUP1
00004fc7: CALLDATALOAD
00004fc8: SWAP3
00004fc9: PUSH1 0x20
00004fcb: SWAP1
00004fcc: SWAP2
00004fcd: ADD
00004fce: CALLDATALOAD
00004fcf: SWAP2
00004fd0: POP
00004fd1: JUMP
00004fd2: JUMPDEST
00004fd3: PUSH1 0x20
00004fd5: DUP1
00004fd6: DUP3
00004fd7: MSTORE
00004fd8: DUP3
00004fd9: MLOAD
00004fda: DUP3
00004fdb: DUP3
00004fdc: ADD
00004fdd: DUP2
00004fde: SWAP1
00004fdf: MSTORE
00004fe0: PUSH0
00004fe1: SWAP2
00004fe2: SWAP1
00004fe3: DUP5
00004fe4: DUP3
00004fe5: ADD
00004fe6: SWAP1
00004fe7: PUSH1 0x40
00004fe9: DUP6
00004fea: ADD
00004feb: SWAP1
00004fec: DUP5
00004fed: JUMPDEST
00004fee: DUP2
00004fef: DUP2
00004ff0: LT
00004ff1: ISZERO
00004ff2: PUSH2 0x5013
00004ff5: JUMPI
00004ff6: DUP4
00004ff7: MLOAD
00004ff8: PUSH1 0x01
00004ffa: PUSH1 0x01
00004ffc: PUSH1 0x80
00004ffe: SHL
00004fff: SUB
00005000: NOT
00005001: AND
00005002: DUP4
00005003: MSTORE
00005004: SWAP3
00005005: DUP5
00005006: ADD
00005007: SWAP3
00005008: SWAP2
00005009: DUP5
0000500a: ADD
0000500b: SWAP2
0000500c: PUSH1 0x01
0000500e: ADD
0000500f: PUSH2 0x4fed
00005012: JUMP
00005013: JUMPDEST
00005014: POP
00005015: SWAP1
00005016: SWAP7
00005017: SWAP6
00005018: POP
00005019: POP
0000501a: POP
0000501b: POP
0000501c: POP
0000501d: POP
0000501e: JUMP
0000501f: JUMPDEST
00005020: PUSH0
00005021: DUP1
00005022: PUSH0
00005023: PUSH1 0x60
00005025: DUP5
00005026: DUP7
00005027: SUB
00005028: SLT
00005029: ISZERO
0000502a: PUSH2 0x5031
0000502d: JUMPI
0000502e: PUSH0
0000502f: DUP1
00005030: REVERT
00005031: JUMPDEST
00005032: POP
00005033: POP
00005034: DUP2
00005035: CALLDATALOAD
00005036: SWAP4
00005037: PUSH1 0x20
00005039: DUP4
0000503a: ADD
0000503b: CALLDATALOAD
0000503c: SWAP4
0000503d: POP
0000503e: PUSH1 0x40
00005040: SWAP1
00005041: SWAP3
00005042: ADD
00005043: CALLDATALOAD
00005044: SWAP2
00005045: SWAP1
00005046: POP
00005047: JUMP
00005048: JUMPDEST
00005049: PUSH0
0000504a: DUP1
0000504b: PUSH0
0000504c: DUP4
0000504d: DUP6
0000504e: SUB
0000504f: PUSH1 0x60
00005051: DUP2
00005052: SLT
00005053: ISZERO
00005054: PUSH2 0x505b
00005057: JUMPI
00005058: PUSH0
00005059: DUP1
0000505a: REVERT
0000505b: JUMPDEST
0000505c: DUP5
0000505d: CALLDATALOAD
0000505e: PUSH1 0x01
00005060: PUSH1 0x01
00005062: PUSH1 0x40
00005064: SHL
00005065: SUB
00005066: DUP1
00005067: DUP3
00005068: GT
00005069: ISZERO
0000506a: PUSH2 0x5071
0000506d: JUMPI
0000506e: PUSH0
0000506f: DUP1
00005070: REVERT
00005071: JUMPDEST
00005072: DUP2
00005073: DUP8
00005074: ADD
00005075: SWAP2
00005076: POP
00005077: DUP8
00005078: PUSH1 0x1f
0000507a: DUP4
0000507b: ADD
0000507c: SLT
0000507d: PUSH2 0x5084
00005080: JUMPI
00005081: PUSH0
00005082: DUP1
00005083: REVERT
00005084: JUMPDEST
00005085: DUP2
00005086: CALLDATALOAD
00005087: DUP2
00005088: DUP2
00005089: GT
0000508a: ISZERO
0000508b: PUSH2 0x5092
0000508e: JUMPI
0000508f: PUSH0
00005090: DUP1
00005091: REVERT
00005092: JUMPDEST
00005093: DUP9
00005094: PUSH1 0x20
00005096: DUP3
00005097: PUSH1 0x07
00005099: SHL
0000509a: DUP6
0000509b: ADD
0000509c: ADD
0000509d: GT
0000509e: ISZERO
0000509f: PUSH2 0x50a6
000050a2: JUMPI
000050a3: PUSH0
000050a4: DUP1
000050a5: REVERT
000050a6: JUMPDEST
000050a7: PUSH1 0x20
000050a9: SWAP3
000050aa: SWAP1
000050ab: SWAP3
000050ac: ADD
000050ad: SWAP6
000050ae: POP
000050af: SWAP1
000050b0: SWAP4
000050b1: POP
000050b2: POP
000050b3: PUSH1 0x40
000050b5: PUSH1 0x1f
000050b7: NOT
000050b8: DUP3
000050b9: ADD
000050ba: SLT
000050bb: ISZERO
000050bc: PUSH2 0x50c3
000050bf: JUMPI
000050c0: PUSH0
000050c1: DUP1
000050c2: REVERT
000050c3: JUMPDEST
000050c4: POP
000050c5: PUSH1 0x20
000050c7: DUP5
000050c8: ADD
000050c9: SWAP1
000050ca: POP
000050cb: SWAP3
000050cc: POP
000050cd: SWAP3
000050ce: POP
000050cf: SWAP3
000050d0: JUMP
000050d1: JUMPDEST
000050d2: PUSH0
000050d3: PUSH1 0x20
000050d5: DUP3
000050d6: DUP5
000050d7: SUB
000050d8: SLT
000050d9: ISZERO
000050da: PUSH2 0x50e1
000050dd: JUMPI
000050de: PUSH0
000050df: DUP1
000050e0: REVERT
000050e1: JUMPDEST
000050e2: PUSH2 0x1cb2
000050e5: DUP3
000050e6: PUSH2 0x4934
000050e9: JUMP
000050ea: JUMPDEST
000050eb: PUSH0
000050ec: DUP1
000050ed: PUSH1 0x20
000050ef: DUP4
000050f0: DUP6
000050f1: SUB
000050f2: SLT
000050f3: ISZERO
000050f4: PUSH2 0x50fb
000050f7: JUMPI
000050f8: PUSH0
000050f9: DUP1
000050fa: REVERT
000050fb: JUMPDEST
000050fc: DUP3
000050fd: CALLDATALOAD
000050fe: PUSH1 0x01
00005100: PUSH1 0x01
00005102: PUSH1 0x40
00005104: SHL
00005105: SUB
00005106: DUP1
00005107: DUP3
00005108: GT
00005109: ISZERO
0000510a: PUSH2 0x5111
0000510d: JUMPI
0000510e: PUSH0
0000510f: DUP1
00005110: REVERT
00005111: JUMPDEST
00005112: DUP2
00005113: DUP6
00005114: ADD
00005115: SWAP2
00005116: POP
00005117: DUP6
00005118: PUSH1 0x1f
0000511a: DUP4
0000511b: ADD
0000511c: SLT
0000511d: PUSH2 0x5124
00005120: JUMPI
00005121: PUSH0
00005122: DUP1
00005123: REVERT
00005124: JUMPDEST
00005125: DUP2
00005126: CALLDATALOAD
00005127: DUP2
00005128: DUP2
00005129: GT
0000512a: ISZERO
0000512b: PUSH2 0x5132
0000512e: JUMPI
0000512f: PUSH0
00005130: DUP1
00005131: REVERT
00005132: JUMPDEST
00005133: DUP7
00005134: PUSH1 0x20
00005136: DUP3
00005137: PUSH1 0x06
00005139: SHL
0000513a: DUP6
0000513b: ADD
0000513c: ADD
0000513d: GT
0000513e: ISZERO
0000513f: PUSH2 0x5146
00005142: JUMPI
00005143: PUSH0
00005144: DUP1
00005145: REVERT
00005146: JUMPDEST
00005147: PUSH1 0x20
00005149: SWAP3
0000514a: SWAP1
0000514b: SWAP3
0000514c: ADD
0000514d: SWAP7
0000514e: SWAP2
0000514f: SWAP6
00005150: POP
00005151: SWAP1
00005152: SWAP4
00005153: POP
00005154: POP
00005155: POP
00005156: POP
00005157: JUMP
00005158: JUMPDEST
00005159: PUSH0
0000515a: PUSH1 0xa0
0000515c: DUP3
0000515d: DUP5
0000515e: SUB
0000515f: SLT
00005160: ISZERO
00005161: PUSH2 0x4ea2
00005164: JUMPI
00005165: PUSH0
00005166: DUP1
00005167: REVERT
00005168: JUMPDEST
00005169: PUSH0
0000516a: DUP1
0000516b: DUP4
0000516c: PUSH1 0x1f
0000516e: DUP5
0000516f: ADD
00005170: SLT
00005171: PUSH2 0x5178
00005174: JUMPI
00005175: PUSH0
00005176: DUP1
00005177: REVERT
00005178: JUMPDEST
00005179: POP
0000517a: DUP2
0000517b: CALLDATALOAD
0000517c: PUSH1 0x01
0000517e: PUSH1 0x01
00005180: PUSH1 0x40
00005182: SHL
00005183: SUB
00005184: DUP2
00005185: GT
00005186: ISZERO
00005187: PUSH2 0x518e
0000518a: JUMPI
0000518b: PUSH0
0000518c: DUP1
0000518d: REVERT
0000518e: JUMPDEST
0000518f: PUSH1 0x20
00005191: DUP4
00005192: ADD
00005193: SWAP2
00005194: POP
00005195: DUP4
00005196: PUSH1 0x20
00005198: DUP3
00005199: DUP6
0000519a: ADD
0000519b: ADD
0000519c: GT
0000519d: ISZERO
0000519e: PUSH2 0x4ba6
000051a1: JUMPI
000051a2: PUSH0
000051a3: DUP1
000051a4: REVERT
000051a5: JUMPDEST
000051a6: PUSH0
000051a7: DUP1
000051a8: PUSH0
000051a9: DUP1
000051aa: PUSH0
000051ab: PUSH1 0xe0
000051ad: DUP7
000051ae: DUP9
000051af: SUB
000051b0: SLT
000051b1: ISZERO
000051b2: PUSH2 0x51b9
000051b5: JUMPI
000051b6: PUSH0
000051b7: DUP1
000051b8: REVERT
000051b9: JUMPDEST
000051ba: PUSH2 0x51c3
000051bd: DUP8
000051be: DUP8
000051bf: PUSH2 0x5158
000051c2: JUMP
000051c3: JUMPDEST
000051c4: SWAP5
000051c5: POP
000051c6: PUSH1 0xa0
000051c8: DUP7
000051c9: ADD
000051ca: CALLDATALOAD
000051cb: PUSH1 0x01
000051cd: PUSH1 0x01
000051cf: PUSH1 0x40
000051d1: SHL
000051d2: SUB
000051d3: DUP1
000051d4: DUP3
000051d5: GT
000051d6: ISZERO
000051d7: PUSH2 0x51de
000051da: JUMPI
000051db: PUSH0
000051dc: DUP1
000051dd: REVERT
000051de: JUMPDEST
000051df: PUSH2 0x51ea
000051e2: DUP10
000051e3: DUP4
000051e4: DUP11
000051e5: ADD
000051e6: PUSH2 0x5168
000051e9: JUMP
000051ea: JUMPDEST
000051eb: SWAP1
000051ec: SWAP7
000051ed: POP
000051ee: SWAP5
000051ef: POP
000051f0: PUSH1 0xc0
000051f2: DUP9
000051f3: ADD
000051f4: CALLDATALOAD
000051f5: SWAP2
000051f6: POP
000051f7: DUP1
000051f8: DUP3
000051f9: GT
000051fa: ISZERO
000051fb: PUSH2 0x5202
000051fe: JUMPI
000051ff: PUSH0
00005200: DUP1
00005201: REVERT
00005202: JUMPDEST
00005203: POP
00005204: PUSH2 0x520f
00005207: DUP9
00005208: DUP3
00005209: DUP10
0000520a: ADD
0000520b: PUSH2 0x5168
0000520e: JUMP
0000520f: JUMPDEST
00005210: SWAP7
00005211: SWAP10
00005212: SWAP6
00005213: SWAP9
00005214: POP
00005215: SWAP4
00005216: SWAP7
00005217: POP
00005218: SWAP3
00005219: SWAP5
0000521a: SWAP4
0000521b: SWAP3
0000521c: POP
0000521d: POP
0000521e: POP
0000521f: JUMP
00005220: JUMPDEST
00005221: PUSH0
00005222: DUP1
00005223: PUSH0
00005224: DUP1
00005225: PUSH0
00005226: DUP1
00005227: PUSH0
00005228: DUP1
00005229: PUSH0
0000522a: DUP10
0000522b: DUP12
0000522c: SUB
0000522d: PUSH2 0x0200
00005230: DUP2
00005231: SLT
00005232: ISZERO
00005233: PUSH2 0x523a
00005236: JUMPI
00005237: PUSH0
00005238: DUP1
00005239: REVERT
0000523a: JUMPDEST
0000523b: PUSH1 0xe0
0000523d: DUP2
0000523e: SLT
0000523f: ISZERO
00005240: PUSH2 0x5247
00005243: JUMPI
00005244: PUSH0
00005245: DUP1
00005246: REVERT
00005247: JUMPDEST
00005248: POP
00005249: DUP10
0000524a: SWAP9
0000524b: POP
0000524c: PUSH1 0xe0
0000524e: DUP11
0000524f: ADD
00005250: CALLDATALOAD
00005251: PUSH1 0x01
00005253: PUSH1 0x01
00005255: PUSH1 0x40
00005257: SHL
00005258: SUB
00005259: DUP1
0000525a: DUP3
0000525b: GT
0000525c: ISZERO
0000525d: PUSH2 0x5264
00005260: JUMPI
00005261: PUSH0
00005262: DUP1
00005263: REVERT
00005264: JUMPDEST
00005265: PUSH2 0x5270
00005268: DUP14
00005269: DUP4
0000526a: DUP15
0000526b: ADD
0000526c: PUSH2 0x5168
0000526f: JUMP
00005270: JUMPDEST
00005271: SWAP1
00005272: SWAP11
00005273: POP
00005274: SWAP9
00005275: POP
00005276: PUSH2 0x0100
00005279: DUP13
0000527a: ADD
0000527b: CALLDATALOAD
0000527c: SWAP2
0000527d: POP
0000527e: DUP1
0000527f: DUP3
00005280: GT
00005281: ISZERO
00005282: PUSH2 0x5289
00005285: JUMPI
00005286: PUSH0
00005287: DUP1
00005288: REVERT
00005289: JUMPDEST
0000528a: PUSH2 0x5295
0000528d: DUP14
0000528e: DUP4
0000528f: DUP15
00005290: ADD
00005291: PUSH2 0x5168
00005294: JUMP
00005295: JUMPDEST
00005296: SWAP1
00005297: SWAP9
00005298: POP
00005299: SWAP7
0000529a: POP
0000529b: DUP7
0000529c: SWAP2
0000529d: POP
0000529e: PUSH2 0x52ab
000052a1: DUP14
000052a2: PUSH2 0x0120
000052a5: DUP15
000052a6: ADD
000052a7: PUSH2 0x5158
000052aa: JUMP
000052ab: JUMPDEST
000052ac: SWAP6
000052ad: POP
000052ae: PUSH2 0x01c0
000052b1: DUP13
000052b2: ADD
000052b3: CALLDATALOAD
000052b4: SWAP2
000052b5: POP
000052b6: DUP1
000052b7: DUP3
000052b8: GT
000052b9: ISZERO
000052ba: PUSH2 0x52c1
000052bd: JUMPI
000052be: PUSH0
000052bf: DUP1
000052c0: REVERT
000052c1: JUMPDEST
000052c2: POP
000052c3: PUSH2 0x52ce
000052c6: DUP13
000052c7: DUP3
000052c8: DUP14
000052c9: ADD
000052ca: PUSH2 0x4b66
000052cd: JUMP
000052ce: JUMPDEST
000052cf: SWAP1
000052d0: SWAP5
000052d1: POP
000052d2: SWAP3
000052d3: POP
000052d4: POP
000052d5: PUSH2 0x01e0
000052d8: DUP11
000052d9: ADD
000052da: CALLDATALOAD
000052db: PUSH2 0x52e3
000052de: DUP2
000052df: PUSH2 0x4838
000052e2: JUMP
000052e3: JUMPDEST
000052e4: DUP1
000052e5: SWAP2
000052e6: POP
000052e7: POP
000052e8: SWAP3
000052e9: SWAP6
000052ea: SWAP9
000052eb: POP
000052ec: SWAP3
000052ed: SWAP6
000052ee: SWAP9
000052ef: POP
000052f0: SWAP3
000052f1: SWAP6
000052f2: SWAP9
000052f3: JUMP
000052f4: JUMPDEST
000052f5: PUSH4 0x4e487b71
000052fa: PUSH1 0xe0
000052fc: SHL
000052fd: PUSH0
000052fe: MSTORE
000052ff: PUSH1 0x32
00005301: PUSH1 0x04
00005303: MSTORE
00005304: PUSH1 0x24
00005306: PUSH0
00005307: REVERT
00005308: JUMPDEST
00005309: PUSH0
0000530a: PUSH1 0x20
0000530c: DUP3
0000530d: DUP5
0000530e: SUB
0000530f: SLT
00005310: ISZERO
00005311: PUSH2 0x5318
00005314: JUMPI
00005315: PUSH0
00005316: DUP1
00005317: REVERT
00005318: JUMPDEST
00005319: PUSH2 0x1cb2
0000531c: DUP3
0000531d: PUSH2 0x4783
00005320: JUMP
00005321: JUMPDEST
00005322: PUSH0
00005323: PUSH1 0xa0
00005325: DUP3
00005326: DUP5
00005327: SUB
00005328: SLT
00005329: ISZERO
0000532a: PUSH2 0x5331
0000532d: JUMPI
0000532e: PUSH0
0000532f: DUP1
00005330: REVERT
00005331: JUMPDEST
00005332: PUSH2 0x1cb2
00005335: DUP4
00005336: DUP4
00005337: PUSH2 0x4845
0000533a: JUMP
0000533b: JUMPDEST
0000533c: PUSH0
0000533d: PUSH1 0x20
0000533f: DUP3
00005340: DUP5
00005341: SUB
00005342: SLT
00005343: ISZERO
00005344: PUSH2 0x534b
00005347: JUMPI
00005348: PUSH0
00005349: DUP1
0000534a: REVERT
0000534b: JUMPDEST
0000534c: DUP2
0000534d: CALLDATALOAD
0000534e: PUSH2 0x1cb2
00005351: DUP2
00005352: PUSH2 0x4824
00005355: JUMP
00005356: JUMPDEST
00005357: PUSH0
00005358: PUSH1 0x60
0000535a: DUP3
0000535b: DUP5
0000535c: SUB
0000535d: SLT
0000535e: ISZERO
0000535f: PUSH2 0x5366
00005362: JUMPI
00005363: PUSH0
00005364: DUP1
00005365: REVERT
00005366: JUMPDEST
00005367: PUSH2 0x1cb2
0000536a: DUP4
0000536b: DUP4
0000536c: PUSH2 0x4945
0000536f: JUMP
00005370: JUMPDEST
00005371: PUSH0
00005372: PUSH1 0x60
00005374: DUP3
00005375: DUP5
00005376: SUB
00005377: SLT
00005378: ISZERO
00005379: PUSH2 0x5380
0000537c: JUMPI
0000537d: PUSH0
0000537e: DUP1
0000537f: REVERT
00005380: JUMPDEST
00005381: PUSH2 0x1cb2
00005384: DUP4
00005385: DUP4
00005386: PUSH2 0x47af
00005389: JUMP
0000538a: JUMPDEST
0000538b: DUP2
0000538c: CALLDATALOAD
0000538d: PUSH2 0x5395
00005390: DUP2
00005391: PUSH2 0x475f
00005394: JUMP
00005395: JUMPDEST
00005396: DUP2
00005397: SLOAD
00005398: PUSH1 0x01
0000539a: PUSH1 0x01
0000539c: PUSH1 0xa0
0000539e: SHL
0000539f: SUB
000053a0: NOT
000053a1: DUP2
000053a2: AND
000053a3: PUSH1 0x01
000053a5: PUSH1 0x01
000053a7: PUSH1 0xa0
000053a9: SHL
000053aa: SUB
000053ab: SWAP3
000053ac: SWAP1
000053ad: SWAP3
000053ae: AND
000053af: SWAP2
000053b0: DUP3
000053b1: OR
000053b2: DUP4
000053b3: SSTORE
000053b4: PUSH1 0x20
000053b6: DUP5
000053b7: ADD
000053b8: CALLDATALOAD
000053b9: PUSH2 0x53c1
000053bc: DUP2
000053bd: PUSH2 0x479a
000053c0: JUMP
000053c1: JUMPDEST
000053c2: PUSH6 0xffffffffffff
000053c9: PUSH1 0xa0
000053cb: SHL
000053cc: PUSH1 0x30
000053ce: SWAP2
000053cf: SWAP1
000053d0: SWAP2
000053d1: SHR
000053d2: AND
000053d3: PUSH1 0x01
000053d5: PUSH1 0x01
000053d7: PUSH1 0xd0
000053d9: SHL
000053da: SUB
000053db: NOT
000053dc: SWAP2
000053dd: DUP3
000053de: AND
000053df: DUP4
000053e0: OR
000053e1: DUP2
000053e2: OR
000053e3: DUP5
000053e4: SSTORE
000053e5: PUSH1 0x40
000053e7: DUP6
000053e8: ADD
000053e9: CALLDATALOAD
000053ea: SWAP2
000053eb: PUSH2 0x53f3
000053ee: DUP4
000053ef: PUSH2 0x479a
000053f2: JUMP
000053f3: JUMPDEST
000053f4: SWAP3
000053f5: OR
000053f6: SWAP2
000053f7: AND
000053f8: OR
000053f9: SWAP1
000053fa: SSTORE
000053fb: POP
000053fc: JUMP
000053fd: JUMPDEST
000053fe: PUSH1 0x60
00005400: DUP2
00005401: ADD
00005402: DUP3
00005403: CALLDATALOAD
00005404: PUSH2 0x540c
00005407: DUP2
00005408: PUSH2 0x475f
0000540b: JUMP
0000540c: JUMPDEST
0000540d: PUSH1 0x01
0000540f: PUSH1 0x01
00005411: PUSH1 0xa0
00005413: SHL
00005414: SUB
00005415: AND
00005416: DUP3
00005417: MSTORE
00005418: PUSH1 0x20
0000541a: DUP4
0000541b: ADD
0000541c: CALLDATALOAD
0000541d: PUSH2 0x5425
00005420: DUP2
00005421: PUSH2 0x479a
00005424: JUMP
00005425: JUMPDEST
00005426: PUSH1 0x01
00005428: PUSH1 0x01
0000542a: PUSH1 0xd0
0000542c: SHL
0000542d: SUB
0000542e: NOT
0000542f: SWAP1
00005430: DUP2
00005431: AND
00005432: PUSH1 0x20
00005434: DUP5
00005435: ADD
00005436: MSTORE
00005437: PUSH1 0x40
00005439: DUP5
0000543a: ADD
0000543b: CALLDATALOAD
0000543c: SWAP1
0000543d: PUSH2 0x5445
00005440: DUP3
00005441: PUSH2 0x479a
00005444: JUMP
00005445: JUMPDEST
00005446: DUP1
00005447: DUP3
00005448: AND
00005449: PUSH1 0x40
0000544b: DUP6
0000544c: ADD
0000544d: MSTORE
0000544e: POP
0000544f: POP
00005450: SWAP3
00005451: SWAP2
00005452: POP
00005453: POP
00005454: JUMP
00005455: JUMPDEST
00005456: PUSH1 0x40
00005458: DUP2
00005459: MSTORE
0000545a: PUSH1 0x24
0000545c: PUSH1 0x40
0000545e: DUP3
0000545f: ADD
00005460: MSTORE
00005461: PUSH32 0x736574556e6c6f636b65722828616464726573732c6279746573362c62797465
00005482: PUSH1 0x60
00005484: DUP3
00005485: ADD
00005486: MSTORE
00005487: PUSH4 0x73362929
0000548c: PUSH1 0xe0
0000548e: SHL
0000548f: PUSH1 0x80
00005491: DUP3
00005492: ADD
00005493: MSTORE
00005494: PUSH1 0xa0
00005496: PUSH1 0x20
00005498: DUP3
00005499: ADD
0000549a: MSTORE
0000549b: PUSH0
0000549c: PUSH2 0x1cb2
0000549f: PUSH1 0xa0
000054a1: DUP4
000054a2: ADD
000054a3: DUP5
000054a4: PUSH2 0x4f18
000054a7: JUMP
000054a8: JUMPDEST
000054a9: PUSH0
000054aa: PUSH1 0x20
000054ac: DUP3
000054ad: DUP5
000054ae: SUB
000054af: SLT
000054b0: ISZERO
000054b1: PUSH2 0x54b8
000054b4: JUMPI
000054b5: PUSH0
000054b6: DUP1
000054b7: REVERT
000054b8: JUMPDEST
000054b9: DUP2
000054ba: MLOAD
000054bb: PUSH2 0x1cb2
000054be: DUP2
000054bf: PUSH2 0x475f
000054c2: JUMP
000054c3: JUMPDEST
000054c4: PUSH4 0x4e487b71
000054c9: PUSH1 0xe0
000054cb: SHL
000054cc: PUSH0
000054cd: MSTORE
000054ce: PUSH1 0x11
000054d0: PUSH1 0x04
000054d2: MSTORE
000054d3: PUSH1 0x24
000054d5: PUSH0
000054d6: REVERT
000054d7: JUMPDEST
000054d8: DUP1
000054d9: DUP3
000054da: ADD
000054db: DUP1
000054dc: DUP3
000054dd: GT
000054de: ISZERO
000054df: PUSH2 0x0998
000054e2: JUMPI
000054e3: PUSH2 0x0998
000054e6: PUSH2 0x54c3
000054e9: JUMP
000054ea: JUMPDEST
000054eb: DUP2
000054ec: CALLDATALOAD
000054ed: DUP2
000054ee: SSTORE
000054ef: PUSH1 0x01
000054f1: DUP2
000054f2: ADD
000054f3: PUSH1 0x20
000054f5: DUP4
000054f6: ADD
000054f7: CALLDATALOAD
000054f8: PUSH2 0x5500
000054fb: DUP2
000054fc: PUSH2 0x4824
000054ff: JUMP
00005500: JUMPDEST
00005501: DUP2
00005502: SLOAD
00005503: PUSH8 0xffffffffffffffff
0000550c: NOT
0000550d: AND
0000550e: PUSH1 0x01
00005510: PUSH1 0x01
00005512: PUSH1 0x40
00005514: SHL
00005515: SUB
00005516: SWAP2
00005517: SWAP1
00005518: SWAP2
00005519: AND
0000551a: OR
0000551b: SWAP1
0000551c: SSTORE
0000551d: POP
0000551e: POP
0000551f: JUMP
00005520: JUMPDEST
00005521: PUSH2 0xffff
00005524: DUP3
00005525: DUP2
00005526: AND
00005527: DUP3
00005528: DUP3
00005529: AND
0000552a: SUB
0000552b: SWAP1
0000552c: DUP1
0000552d: DUP3
0000552e: GT
0000552f: ISZERO
00005530: PUSH2 0x391f
00005533: JUMPI
00005534: PUSH2 0x391f
00005537: PUSH2 0x54c3
0000553a: JUMP
0000553b: JUMPDEST
0000553c: PUSH2 0xffff
0000553f: DUP2
00005540: DUP2
00005541: AND
00005542: DUP4
00005543: DUP3
00005544: AND
00005545: ADD
00005546: SWAP1
00005547: DUP1
00005548: DUP3
00005549: GT
0000554a: ISZERO
0000554b: PUSH2 0x391f
0000554e: JUMPI
0000554f: PUSH2 0x391f
00005552: PUSH2 0x54c3
00005555: JUMP
00005556: JUMPDEST
00005557: PUSH0
00005558: PUSH1 0xa0
0000555a: DUP3
0000555b: DUP5
0000555c: SUB
0000555d: SLT
0000555e: ISZERO
0000555f: PUSH2 0x5566
00005562: JUMPI
00005563: PUSH0
00005564: DUP1
00005565: REVERT
00005566: JUMPDEST
00005567: PUSH2 0x556e
0000556a: PUSH2 0x46ea
0000556d: JUMP
0000556e: JUMPDEST
0000556f: PUSH2 0x5577
00005572: DUP4
00005573: PUSH2 0x4783
00005576: JUMP
00005577: JUMPDEST
00005578: DUP2
00005579: MSTORE
0000557a: PUSH2 0x5585
0000557d: PUSH1 0x20
0000557f: DUP5
00005580: ADD
00005581: PUSH2 0x4783
00005584: JUMP
00005585: JUMPDEST
00005586: PUSH1 0x20
00005588: DUP3
00005589: ADD
0000558a: MSTORE
0000558b: PUSH1 0x40
0000558d: DUP4
0000558e: ADD
0000558f: CALLDATALOAD
00005590: PUSH2 0x5598
00005593: DUP2
00005594: PUSH2 0x475f
00005597: JUMP
00005598: JUMPDEST
00005599: PUSH1 0x40
0000559b: DUP3
0000559c: ADD
0000559d: MSTORE
0000559e: PUSH1 0x60
000055a0: DUP4
000055a1: DUP2
000055a2: ADD
000055a3: CALLDATALOAD
000055a4: SWAP1
000055a5: DUP3
000055a6: ADD
000055a7: MSTORE
000055a8: PUSH1 0x80
000055aa: SWAP3
000055ab: DUP4
000055ac: ADD
000055ad: CALLDATALOAD
000055ae: SWAP3
000055af: DUP2
000055b0: ADD
000055b1: SWAP3
000055b2: SWAP1
000055b3: SWAP3
000055b4: MSTORE
000055b5: POP
000055b6: SWAP2
000055b7: SWAP1
000055b8: POP
000055b9: JUMP
000055ba: JUMPDEST
000055bb: PUSH1 0x20
000055bd: DUP1
000055be: DUP3
000055bf: MSTORE
000055c0: PUSH1 0x2c
000055c2: SWAP1
000055c3: DUP3
000055c4: ADD
000055c5: MSTORE
000055c6: PUSH32 0x656e74697479555549442063616e6e6f742062652074686520706c6174666f72
000055e7: PUSH1 0x40
000055e9: DUP3
000055ea: ADD
000055eb: MSTORE
000055ec: PUSH12 0x1b48195b9d1a5d1e55555251
000055f9: PUSH1 0xa2
000055fb: SHL
000055fc: PUSH1 0x60
000055fe: DUP3
000055ff: ADD
00005600: MSTORE
00005601: PUSH1 0x80
00005603: ADD
00005604: SWAP1
00005605: JUMP
00005606: JUMPDEST
00005607: PUSH1 0x01
00005609: PUSH1 0x01
0000560b: PUSH1 0x40
0000560d: SHL
0000560e: SUB
0000560f: DUP2
00005610: DUP2
00005611: AND
00005612: DUP4
00005613: DUP3
00005614: AND
00005615: ADD
00005616: SWAP1
00005617: DUP1
00005618: DUP3
00005619: GT
0000561a: ISZERO
0000561b: PUSH2 0x391f
0000561e: JUMPI
0000561f: PUSH2 0x391f
00005622: PUSH2 0x54c3
00005625: JUMP
00005626: JUMPDEST
00005627: PUSH1 0x60
00005629: DUP1
0000562a: DUP3
0000562b: MSTORE
0000562c: DUP5
0000562d: MLOAD
0000562e: SWAP1
0000562f: DUP3
00005630: ADD
00005631: DUP2
00005632: SWAP1
00005633: MSTORE
00005634: PUSH0
00005635: SWAP1
00005636: PUSH1 0x20
00005638: SWAP1
00005639: PUSH1 0x80
0000563b: DUP5
0000563c: ADD
0000563d: SWAP1
0000563e: DUP3
0000563f: DUP9
00005640: ADD
00005641: DUP5
00005642: JUMPDEST
00005643: DUP3
00005644: DUP2
00005645: LT
00005646: ISZERO
00005647: PUSH2 0x565e
0000564a: JUMPI
0000564b: DUP2
0000564c: MLOAD
0000564d: DUP5
0000564e: MSTORE
0000564f: SWAP3
00005650: DUP5
00005651: ADD
00005652: SWAP3
00005653: SWAP1
00005654: DUP5
00005655: ADD
00005656: SWAP1
00005657: PUSH1 0x01
00005659: ADD
0000565a: PUSH2 0x5642
0000565d: JUMP
0000565e: JUMPDEST
0000565f: POP
00005660: POP
00005661: POP
00005662: PUSH1 0x20
00005664: DUP5
00005665: ADD
00005666: SWAP6
00005667: SWAP1
00005668: SWAP6
00005669: MSTORE
0000566a: POP
0000566b: POP
0000566c: PUSH1 0x40
0000566e: ADD
0000566f: MSTORE
00005670: SWAP2
00005671: SWAP1
00005672: POP
00005673: JUMP
00005674: JUMPDEST
00005675: PUSH1 0x40
00005677: DUP2
00005678: MSTORE
00005679: PUSH1 0x10
0000567b: PUSH1 0x40
0000567d: DUP3
0000567e: ADD
0000567f: MSTORE
00005680: PUSH16 0x736574456e61626c656428626f6f6c29
00005691: PUSH1 0x80
00005693: SHL
00005694: PUSH1 0x60
00005696: DUP3
00005697: ADD
00005698: MSTORE
00005699: PUSH1 0x80
0000569b: PUSH1 0x20
0000569d: DUP3
0000569e: ADD
0000569f: MSTORE
000056a0: PUSH0
000056a1: PUSH2 0x1cb2
000056a4: PUSH1 0x80
000056a6: DUP4
000056a7: ADD
000056a8: DUP5
000056a9: PUSH2 0x4f18
000056ac: JUMP
000056ad: JUMPDEST
000056ae: DUP2
000056af: DUP2
000056b0: SUB
000056b1: DUP2
000056b2: DUP2
000056b3: GT
000056b4: ISZERO
000056b5: PUSH2 0x0998
000056b8: JUMPI
000056b9: PUSH2 0x0998
000056bc: PUSH2 0x54c3
000056bf: JUMP
000056c0: JUMPDEST
000056c1: PUSH0
000056c2: PUSH1 0x20
000056c4: DUP3
000056c5: DUP5
000056c6: SUB
000056c7: SLT
000056c8: ISZERO
000056c9: PUSH2 0x56d0
000056cc: JUMPI
000056cd: PUSH0
000056ce: DUP1
000056cf: REVERT
000056d0: JUMPDEST
000056d1: POP
000056d2: MLOAD
000056d3: SWAP2
000056d4: SWAP1
000056d5: POP
000056d6: JUMP
000056d7: JUMPDEST
000056d8: PUSH1 0x20
000056da: DUP2
000056db: MSTORE
000056dc: PUSH0
000056dd: PUSH2 0x1cb2
000056e0: PUSH1 0x20
000056e2: DUP4
000056e3: ADD
000056e4: DUP5
000056e5: PUSH2 0x4f18
000056e8: JUMP
000056e9: JUMPDEST
000056ea: PUSH1 0x01
000056ec: DUP2
000056ed: DUP2
000056ee: SHR
000056ef: SWAP1
000056f0: DUP3
000056f1: AND
000056f2: DUP1
000056f3: PUSH2 0x56fd
000056f6: JUMPI
000056f7: PUSH1 0x7f
000056f9: DUP3
000056fa: AND
000056fb: SWAP2
000056fc: POP
000056fd: JUMPDEST
000056fe: PUSH1 0x20
00005700: DUP3
00005701: LT
00005702: DUP2
00005703: SUB
00005704: PUSH2 0x4ea2
00005707: JUMPI
00005708: PUSH4 0x4e487b71
0000570d: PUSH1 0xe0
0000570f: SHL
00005710: PUSH0
00005711: MSTORE
00005712: PUSH1 0x22
00005714: PUSH1 0x04
00005716: MSTORE
00005717: PUSH1 0x24
00005719: PUSH0
0000571a: REVERT
0000571b: JUMPDEST
0000571c: PUSH0
0000571d: PUSH1 0x40
0000571f: DUP3
00005720: DUP5
00005721: SUB
00005722: SLT
00005723: ISZERO
00005724: PUSH2 0x572b
00005727: JUMPI
00005728: PUSH0
00005729: DUP1
0000572a: REVERT
0000572b: JUMPDEST
0000572c: PUSH1 0x40
0000572e: MLOAD
0000572f: PUSH1 0x40
00005731: DUP2
00005732: ADD
00005733: DUP2
00005734: DUP2
00005735: LT
00005736: PUSH1 0x01
00005738: PUSH1 0x01
0000573a: PUSH1 0x40
0000573c: SHL
0000573d: SUB
0000573e: DUP3
0000573f: GT
00005740: OR
00005741: ISZERO
00005742: PUSH2 0x574d
00005745: JUMPI
00005746: PUSH2 0x574d
00005749: PUSH2 0x46ae
0000574c: JUMP
0000574d: JUMPDEST
0000574e: PUSH1 0x40
00005750: MSTORE
00005751: DUP3
00005752: CALLDATALOAD
00005753: DUP2
00005754: MSTORE
00005755: PUSH1 0x20
00005757: SWAP3
00005758: DUP4
00005759: ADD
0000575a: CALLDATALOAD
0000575b: SWAP3
0000575c: DUP2
0000575d: ADD
0000575e: SWAP3
0000575f: SWAP1
00005760: SWAP3
00005761: MSTORE
00005762: POP
00005763: SWAP2
00005764: SWAP1
00005765: POP
00005766: JUMP
00005767: JUMPDEST
00005768: PUSH0
00005769: PUSH1 0x40
0000576b: DUP3
0000576c: DUP5
0000576d: SUB
0000576e: SLT
0000576f: ISZERO
00005770: PUSH2 0x5777
00005773: JUMPI
00005774: PUSH0
00005775: DUP1
00005776: REVERT
00005777: JUMPDEST
00005778: PUSH2 0x1cb2
0000577b: DUP4
0000577c: DUP4
0000577d: PUSH2 0x571b
00005780: JUMP
00005781: JUMPDEST
00005782: PUSH4 0x4e487b71
00005787: PUSH1 0xe0
00005789: SHL
0000578a: PUSH0
0000578b: MSTORE
0000578c: PUSH1 0x21
0000578e: PUSH1 0x04
00005790: MSTORE
00005791: PUSH1 0x24
00005793: PUSH0
00005794: REVERT
00005795: JUMPDEST
00005796: PUSH1 0xa0
00005798: DUP2
00005799: ADD
0000579a: PUSH1 0x01
0000579c: PUSH1 0x01
0000579e: PUSH1 0x80
000057a0: SHL
000057a1: SUB
000057a2: NOT
000057a3: PUSH2 0x57ab
000057a6: DUP5
000057a7: PUSH2 0x4783
000057aa: JUMP
000057ab: JUMPDEST
000057ac: AND
000057ad: DUP3
000057ae: MSTORE
000057af: PUSH1 0x20
000057b1: DUP4
000057b2: ADD
000057b3: CALLDATALOAD
000057b4: PUSH2 0x57bc
000057b7: DUP2
000057b8: PUSH2 0x475f
000057bb: JUMP
000057bc: JUMPDEST
000057bd: PUSH1 0x01
000057bf: PUSH1 0x01
000057c1: PUSH1 0xa0
000057c3: SHL
000057c4: SUB
000057c5: AND
000057c6: PUSH1 0x20
000057c8: DUP4
000057c9: ADD
000057ca: MSTORE
000057cb: PUSH1 0x40
000057cd: DUP4
000057ce: ADD
000057cf: CALLDATALOAD
000057d0: PUSH2 0x57d8
000057d3: DUP2
000057d4: PUSH2 0x4824
000057d7: JUMP
000057d8: JUMPDEST
000057d9: PUSH1 0x01
000057db: PUSH1 0x01
000057dd: PUSH1 0x40
000057df: SHL
000057e0: SUB
000057e1: SWAP1
000057e2: DUP2
000057e3: AND
000057e4: PUSH1 0x40
000057e6: DUP5
000057e7: ADD
000057e8: MSTORE
000057e9: PUSH1 0x60
000057eb: DUP5
000057ec: ADD
000057ed: CALLDATALOAD
000057ee: SWAP1
000057ef: PUSH2 0x57f7
000057f2: DUP3
000057f3: PUSH2 0x4824
000057f6: JUMP
000057f7: JUMPDEST
000057f8: AND
000057f9: PUSH1 0x60
000057fb: DUP4
000057fc: ADD
000057fd: MSTORE
000057fe: PUSH1 0x80
00005800: DUP4
00005801: ADD
00005802: CALLDATALOAD
00005803: PUSH2 0x580b
00005806: DUP2
00005807: PUSH2 0x4838
0000580a: JUMP
0000580b: JUMPDEST
0000580c: DUP1
0000580d: ISZERO
0000580e: ISZERO
0000580f: PUSH1 0x80
00005811: DUP5
00005812: ADD
00005813: MSTORE
00005814: POP
00005815: SWAP3
00005816: SWAP2
00005817: POP
00005818: POP
00005819: JUMP
0000581a: JUMPDEST
0000581b: PUSH0
0000581c: PUSH1 0xe0
0000581e: DUP3
0000581f: DUP5
00005820: SUB
00005821: SLT
00005822: ISZERO
00005823: PUSH2 0x582a
00005826: JUMPI
00005827: PUSH0
00005828: DUP1
00005829: REVERT
0000582a: JUMPDEST
0000582b: PUSH1 0x40
0000582d: MLOAD
0000582e: PUSH1 0xc0
00005830: DUP2
00005831: ADD
00005832: DUP2
00005833: DUP2
00005834: LT
00005835: PUSH1 0x01
00005837: PUSH1 0x01
00005839: PUSH1 0x40
0000583b: SHL
0000583c: SUB
0000583d: DUP3
0000583e: GT
0000583f: OR
00005840: ISZERO
00005841: PUSH2 0x584c
00005844: JUMPI
00005845: PUSH2 0x584c
00005848: PUSH2 0x46ae
0000584b: JUMP
0000584c: JUMPDEST
0000584d: PUSH1 0x40
0000584f: MSTORE
00005850: PUSH2 0x5858
00005853: DUP4
00005854: PUSH2 0x4783
00005857: JUMP
00005858: JUMPDEST
00005859: DUP2
0000585a: MSTORE
0000585b: PUSH2 0x5866
0000585e: PUSH1 0x20
00005860: DUP5
00005861: ADD
00005862: PUSH2 0x4783
00005865: JUMP
00005866: JUMPDEST
00005867: PUSH1 0x20
00005869: DUP3
0000586a: ADD
0000586b: MSTORE
0000586c: PUSH1 0x40
0000586e: DUP4
0000586f: ADD
00005870: CALLDATALOAD
00005871: PUSH2 0x5879
00005874: DUP2
00005875: PUSH2 0x475f
00005878: JUMP
00005879: JUMPDEST
0000587a: PUSH1 0x40
0000587c: DUP3
0000587d: ADD
0000587e: MSTORE
0000587f: PUSH1 0x60
00005881: DUP4
00005882: DUP2
00005883: ADD
00005884: CALLDATALOAD
00005885: SWAP1
00005886: DUP3
00005887: ADD
00005888: MSTORE
00005889: PUSH2 0x5895
0000588c: DUP5
0000588d: PUSH1 0x80
0000588f: DUP6
00005890: ADD
00005891: PUSH2 0x571b
00005894: JUMP
00005895: JUMPDEST
00005896: PUSH1 0x80
00005898: DUP3
00005899: ADD
0000589a: MSTORE
0000589b: PUSH1 0xc0
0000589d: SWAP3
0000589e: SWAP1
0000589f: SWAP3
000058a0: ADD
000058a1: CALLDATALOAD
000058a2: PUSH1 0xa0
000058a4: DUP4
000058a5: ADD
000058a6: MSTORE
000058a7: POP
000058a8: SWAP2
000058a9: SWAP1
000058aa: POP
000058ab: JUMP
000058ac: JUMPDEST
000058ad: PUSH1 0x1f
000058af: DUP3
000058b0: GT
000058b1: ISZERO
000058b2: PUSH2 0x102b
000058b5: JUMPI
000058b6: DUP1
000058b7: PUSH0
000058b8: MSTORE
000058b9: PUSH1 0x20
000058bb: PUSH0
000058bc: KECCAK256
000058bd: PUSH1 0x1f
000058bf: DUP5
000058c0: ADD
000058c1: PUSH1 0x05
000058c3: SHR
000058c4: DUP2
000058c5: ADD
000058c6: PUSH1 0x20
000058c8: DUP6
000058c9: LT
000058ca: ISZERO
000058cb: PUSH2 0x58d1
000058ce: JUMPI
000058cf: POP
000058d0: DUP1
000058d1: JUMPDEST
000058d2: PUSH1 0x1f
000058d4: DUP5
000058d5: ADD
000058d6: PUSH1 0x05
000058d8: SHR
000058d9: DUP3
000058da: ADD
000058db: SWAP2
000058dc: POP
000058dd: JUMPDEST
000058de: DUP2
000058df: DUP2
000058e0: LT
000058e1: ISZERO
000058e2: PUSH2 0x58f0
000058e5: JUMPI
000058e6: PUSH0
000058e7: DUP2
000058e8: SSTORE
000058e9: PUSH1 0x01
000058eb: ADD
000058ec: PUSH2 0x58dd
000058ef: JUMP
000058f0: JUMPDEST
000058f1: POP
000058f2: POP
000058f3: POP
000058f4: POP
000058f5: POP
000058f6: JUMP
000058f7: JUMPDEST
000058f8: DUP2
000058f9: MLOAD
000058fa: PUSH1 0x01
000058fc: PUSH1 0x01
000058fe: PUSH1 0x40
00005900: SHL
00005901: SUB
00005902: DUP2
00005903: GT
00005904: ISZERO
00005905: PUSH2 0x5910
00005908: JUMPI
00005909: PUSH2 0x5910
0000590c: PUSH2 0x46ae
0000590f: JUMP
00005910: JUMPDEST
00005911: PUSH2 0x5924
00005914: DUP2
00005915: PUSH2 0x591e
00005918: DUP5
00005919: SLOAD
0000591a: PUSH2 0x56e9
0000591d: JUMP
0000591e: JUMPDEST
0000591f: DUP5
00005920: PUSH2 0x58ac
00005923: JUMP
00005924: JUMPDEST
00005925: PUSH1 0x20
00005927: DUP1
00005928: PUSH1 0x1f
0000592a: DUP4
0000592b: GT
0000592c: PUSH1 0x01
0000592e: DUP2
0000592f: EQ
00005930: PUSH2 0x5957
00005933: JUMPI
00005934: PUSH0
00005935: DUP5
00005936: ISZERO
00005937: PUSH2 0x5940
0000593a: JUMPI
0000593b: POP
0000593c: DUP6
0000593d: DUP4
0000593e: ADD
0000593f: MLOAD
00005940: JUMPDEST
00005941: PUSH0
00005942: NOT
00005943: PUSH1 0x03
00005945: DUP7
00005946: SWAP1
00005947: SHL
00005948: SHR
00005949: NOT
0000594a: AND
0000594b: PUSH1 0x01
0000594d: DUP6
0000594e: SWAP1
0000594f: SHL
00005950: OR
00005951: DUP6
00005952: SSTORE
00005953: PUSH2 0x0d74
00005956: JUMP
00005957: JUMPDEST
00005958: PUSH0
00005959: DUP6
0000595a: DUP2
0000595b: MSTORE
0000595c: PUSH1 0x20
0000595e: DUP2
0000595f: KECCAK256
00005960: PUSH1 0x1f
00005962: NOT
00005963: DUP7
00005964: AND
00005965: SWAP2
00005966: JUMPDEST
00005967: DUP3
00005968: DUP2
00005969: LT
0000596a: ISZERO
0000596b: PUSH2 0x5985
0000596e: JUMPI
0000596f: DUP9
00005970: DUP7
00005971: ADD
00005972: MLOAD
00005973: DUP3
00005974: SSTORE
00005975: SWAP5
00005976: DUP5
00005977: ADD
00005978: SWAP5
00005979: PUSH1 0x01
0000597b: SWAP1
0000597c: SWAP2
0000597d: ADD
0000597e: SWAP1
0000597f: DUP5
00005980: ADD
00005981: PUSH2 0x5966
00005984: JUMP
00005985: JUMPDEST
00005986: POP
00005987: DUP6
00005988: DUP3
00005989: LT
0000598a: ISZERO
0000598b: PUSH2 0x59a2
0000598e: JUMPI
0000598f: DUP8
00005990: DUP6
00005991: ADD
00005992: MLOAD
00005993: PUSH0
00005994: NOT
00005995: PUSH1 0x03
00005997: DUP9
00005998: SWAP1
00005999: SHL
0000599a: PUSH1 0xf8
0000599c: AND
0000599d: SHR
0000599e: NOT
0000599f: AND
000059a0: DUP2
000059a1: SSTORE
000059a2: JUMPDEST
000059a3: POP
000059a4: POP
000059a5: POP
000059a6: POP
000059a7: POP
000059a8: PUSH1 0x01
000059aa: SWAP1
000059ab: DUP2
000059ac: SHL
000059ad: ADD
000059ae: SWAP1
000059af: SSTORE
000059b0: POP
000059b1: JUMP
000059b2: JUMPDEST
000059b3: PUSH4 0x4e487b71
000059b8: PUSH1 0xe0
000059ba: SHL
000059bb: PUSH0
000059bc: MSTORE
000059bd: PUSH1 0x12
000059bf: PUSH1 0x04
000059c1: MSTORE
000059c2: PUSH1 0x24
000059c4: PUSH0
000059c5: REVERT
000059c6: JUMPDEST
000059c7: PUSH0
000059c8: PUSH1 0x20
000059ca: DUP3
000059cb: DUP5
000059cc: SUB
000059cd: SLT
000059ce: ISZERO
000059cf: PUSH2 0x59d6
000059d2: JUMPI
000059d3: PUSH0
000059d4: DUP1
000059d5: REVERT
000059d6: JUMPDEST
000059d7: DUP2
000059d8: MLOAD
000059d9: PUSH2 0x1cb2
000059dc: DUP2
000059dd: PUSH2 0x4838
000059e0: JUMP
000059e1: JUMPDEST
000059e2: DUP3
000059e3: DUP2
000059e4: MSTORE
000059e5: PUSH1 0x40
000059e7: PUSH1 0x20
000059e9: DUP3
000059ea: ADD
000059eb: MSTORE
000059ec: PUSH0
000059ed: PUSH2 0x1919
000059f0: PUSH1 0x40
000059f2: DUP4
000059f3: ADD
000059f4: DUP5
000059f5: PUSH2 0x4f18
000059f8: JUMP
000059f9: JUMPDEST
000059fa: PUSH0
000059fb: DUP3
000059fc: MLOAD
000059fd: PUSH2 0x5a0a
00005a00: DUP2
00005a01: DUP5
00005a02: PUSH1 0x20
00005a04: DUP8
00005a05: ADD
00005a06: PUSH2 0x4ef6
00005a09: JUMP
00005a0a: JUMPDEST
00005a0b: SWAP2
00005a0c: SWAP1
00005a0d: SWAP2
00005a0e: ADD
00005a0f: SWAP3
00005a10: SWAP2
00005a11: POP
00005a12: POP
00005a13: JUMP
00005a14: JUMPDEST
00005a15: PUSH0
00005a16: DUP3
00005a17: PUSH2 0x5a22
00005a1a: JUMPI
00005a1b: PUSH2 0x5a22
00005a1e: PUSH2 0x59b2
00005a21: JUMP
00005a22: JUMPDEST
00005a23: POP
00005a24: DIV
00005a25: SWAP1
00005a26: JUMP
00005a27: JUMPDEST
00005a28: PUSH0
00005a29: DUP3
00005a2a: PUSH2 0x5a35
00005a2d: JUMPI
00005a2e: PUSH2 0x5a35
00005a31: PUSH2 0x59b2
00005a34: JUMP
00005a35: JUMPDEST
00005a36: POP
00005a37: MOD
00005a38: SWAP1
00005a39: JUMP
00005a3a: JUMPDEST
00005a3b: PUSH0
00005a3c: PUSH1 0x01
00005a3e: DUP3
00005a3f: ADD
00005a40: PUSH2 0x5a4b
00005a43: JUMPI
00005a44: PUSH2 0x5a4b
00005a47: PUSH2 0x54c3
00005a4a: JUMP
00005a4b: JUMPDEST
00005a4c: POP
00005a4d: PUSH1 0x01
00005a4f: ADD
00005a50: SWAP1
00005a51: JUMP
00005a52: JUMPDEST
00005a53: DUP1
00005a54: DUP3
00005a55: MUL
00005a56: DUP2
00005a57: ISZERO
00005a58: DUP3
00005a59: DUP3
00005a5a: DIV
00005a5b: DUP5
00005a5c: EQ
00005a5d: OR
00005a5e: PUSH2 0x0998
00005a61: JUMPI
00005a62: PUSH2 0x0998
00005a65: PUSH2 0x54c3
00005a68: JUMP
00005a69: JUMPDEST
00005a6a: PUSH4 0x4e487b71
00005a6f: PUSH1 0xe0
00005a71: SHL
00005a72: PUSH0
00005a73: MSTORE
00005a74: PUSH1 0x31
00005a76: PUSH1 0x04
00005a78: MSTORE
00005a79: PUSH1 0x24
00005a7b: PUSH0
00005a7c: REVERT
00005a7d: INVALID
00005a7e: UNKNOWN(0xC1)
00005a7f: UNKNOWN(0xF6)
00005a80: INVALID
00005a81: UNKNOWN(0x24)
00005a82: PUSH3 0x1ce81e
00005a86: UNKNOWN(0xC5)
00005a87: DUP3
00005a88: PUSH29 0xaf0253cadb74709b061630e6b55e82371705932000a16a46d94261c751
00005aa6: PUSH29 0xc8ff89f61c0ce93598e3c849801011dee649a6a557d100241ecf16d79d
00005ac4: UNKNOWN(0x0F)
00005ac5: DUP14
00005ac6: UNKNOWN(0xBF)
00005ac7: UNKNOWN(0xB9)
00005ac8: UNKNOWN(0x2C)
00005ac9: UNKNOWN(0xBC)
00005aca: SMOD
00005acb: INVALID
00005acc: OR
00005acd: DUP5
00005ace: DIV
00005acf: UNKNOWN(0x25)
00005ad0: SWAP8
00005ad1: PUSH13 0xf0667f022fe9877caa831b08eb
00005adf: DUP1
00005ae0: UNKNOWN(0xEE)
00005ae1: PUSH13 0xcad1a05bacb615631c5c657518
00005aef: UNKNOWN(0xA9)
00005af0: EXTCODESIZE
00005af1: UNKNOWN(0xAB)
00005af2: UNKNOWN(0xEF)
00005af3: RETURNDATASIZE
00005af4: SMOD
00005af5: SIGNEXTEND
00005af6: SHR
00005af7: UNKNOWN(0x2A)
00005af8: UNKNOWN(0xA8)
00005af9: UNKNOWN(0xD8)
00005afa: CALLCODE
00005afb: UNKNOWN(0xD0)
00005afc: UNKNOWN(0x0C)
00005afd: UNKNOWN(0xBF)
00005afe: UNKNOWN(0xE2)
00005aff: DELEGATECALL
00005b00: UNKNOWN(0xEA)
00005b01: UNKNOWN(0xAE)
00005b02: BLOBBASEFEE
00005b03: SWAP8
00005b04: MLOAD
00005b05: UNKNOWN(0xE8)
00005b06: GAS
00005b07: RETURNDATACOPY
00005b08: BLOBBASEFEE
00005b09: PUSH28 0x9587827a877f29914755229b07a7b2da98285f7002dd7bc7dec4dcee
00005b26: UNKNOWN(0xDD)
00005b27: UNKNOWN(0xA7)
00005b28: PUSH22 0xe58dd541e08a116c6c53815c0bd028192f7b62680063
00005b3f: UNKNOWN(0xD8)
00005b40: UNKNOWN(0xE5)
00005b41: PUSH16 0x0160910d57b83f54cac0b3871607c252
00005b52: SWAP10
00005b53: DUP6
00005b54: UNKNOWN(0xAA)
00005b55: POP
00005b56: UNKNOWN(0xE3)
00005b57: MSTORE8
00005b58: UNKNOWN(0x23)
00005b59: PUSH4 0x89f5acca
00005b5e: CREATE
00005b5f: UNKNOWN(0xD6)
00005b60: UNKNOWN(0xC3)
00005b61: UNKNOWN(0xC8)
00005b62: UNKNOWN(0xCA)
00005b63: ADDMOD
00005b64: SWAP12
00005b65: SWAP15
00005b66: PUSH8 0xe712dd7b15ff9439
00005b6f: MSTORE8
00005b70: UNKNOWN(0x28)
00005b71: UNKNOWN(0xB6)
00005b72: POP
00005b73: SMOD
00005b74: DUP10
00005b75: BASEFEE
00005b76: UNKNOWN(0xC3)
00005b77: UNKNOWN(0xEB)
00005b78: UNKNOWN(0xDD)
00005b79: UNKNOWN(0xE2)
00005b7a: DUP5
00005b7b: UNKNOWN(0xF9)
00005b7c: UNKNOWN(0x4F)
00005b7d: PUSH15 0xa2646970667358221220fc04dead98
00005b8d: UNKNOWN(0xCB)
00005b8e: CALLER
00005b8f: PUSH11 0x1645e8b42e60d41ced52ed
00005b9b: UNKNOWN(0xDE)
00005b9c: UNKNOWN(0xDC)
00005b9d: MOD
00005b9e: SUB
00005b9f: TSTORE
00005ba0: SDIV
00005ba1: UNKNOWN(0x27)
00005ba2: UNKNOWN(0x21)
00005ba3: SHR
00005ba4: PUSH30

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0xa48936dbf80b3cc75326ec179eca50a849b4c75898d789a22035e3ffc99a5b2e
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0xa48936dbf80b3cc75326ec179eca50a849b4c75898d789a22035e3ffc99a5b2e",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xf83f55a9",
            "selector": "0xf83f55a9",
            "calldata_variants": [
                "0xf83f55a9",
                "0xf83f55a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfdf25f33",
            "selector": "0xfdf25f33",
            "calldata_variants": [
                "0xfdf25f33",
                "0xfdf25f330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xff3c2f89",
            "selector": "0xff3c2f89",
            "calldata_variants": [
                "0xff3c2f89",
                "0xff3c2f890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe2ca5974",
            "selector": "0xe2ca5974",
            "calldata_variants": [
                "0xe2ca5974",
                "0xe2ca59740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec87621c",
            "selector": "0xec87621c",
            "calldata_variants": [
                "0xec87621c",
                "0xec87621c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf698da25",
            "selector": "0xf698da25",
            "calldata_variants": [
                "0xf698da25",
                "0xf698da250000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 23295,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xd636256d8fa545b7f8dc8ec0002146e3f9dd1f2156518a51aa4ba5936113a0c1
call_targets: 0x7d3e713f1160a21d8251749e30e62ff12d27d6f2
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd636256d8fa545b7f8dc8ec0002146e3f9dd1f2156518a51aa4ba5936113a0c1",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x7d3e713f1160a21d8251749e30e62ff12d27d6f2"
    ],
    "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": "0xf83f55a9",
            "selector": "0xf83f55a9",
            "calldata_variants": [
                "0xf83f55a9",
                "0xf83f55a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfdf25f33",
            "selector": "0xfdf25f33",
            "calldata_variants": [
                "0xfdf25f33",
                "0xfdf25f330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xff3c2f89",
            "selector": "0xff3c2f89",
            "calldata_variants": [
                "0xff3c2f89",
                "0xff3c2f890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe2ca5974",
            "selector": "0xe2ca5974",
            "calldata_variants": [
                "0xe2ca5974",
                "0xe2ca59740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec87621c",
            "selector": "0xec87621c",
            "calldata_variants": [
                "0xec87621c",
                "0xec87621c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf698da25",
            "selector": "0xf698da25",
            "calldata_variants": [
                "0xf698da25",
                "0xf698da250000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 11795,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 17807,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 23290,
            "opcode": "CALLCODE",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [],
    "untrusted_call_count": 3
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xd636256d8fa545b7f8dc8ec0002146e3f9dd1f2156518a51aa4ba5936113a0c1
call_targets: 0x7d3e713f1160a21d8251749e30e62ff12d27d6f2
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd636256d8fa545b7f8dc8ec0002146e3f9dd1f2156518a51aa4ba5936113a0c1",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x7d3e713f1160a21d8251749e30e62ff12d27d6f2"
    ],
    "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": "0xf83f55a9",
            "selector": "0xf83f55a9",
            "calldata_variants": [
                "0xf83f55a9",
                "0xf83f55a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfdf25f33",
            "selector": "0xfdf25f33",
            "calldata_variants": [
                "0xfdf25f33",
                "0xfdf25f330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xff3c2f89",
            "selector": "0xff3c2f89",
            "calldata_variants": [
                "0xff3c2f89",
                "0xff3c2f890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe2ca5974",
            "selector": "0xe2ca5974",
            "calldata_variants": [
                "0xe2ca5974",
                "0xe2ca59740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec87621c",
            "selector": "0xec87621c",
            "calldata_variants": [
                "0xec87621c",
                "0xec87621c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf698da25",
            "selector": "0xf698da25",
            "calldata_variants": [
                "0xf698da25",
                "0xf698da250000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 11795,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 17807,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 23290,
            "opcode": "CALLCODE",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": []
}
medium other codex Claim data not bound to merkle-leaf entityUUID 75 no
view
evidence_json
{
    "evidence": "The merkle proof validates `user`, but `_release` uses `claimData.entityUUID` for state and calculations without checking equality to `user.entityUUID`.",
    "locations": [
        "src/unlock/v1/Distributor.sol:300",
        "src/unlock/v1/Distributor.sol:321",
        "src/unlock/v1/Distributor.sol:325"
    ],
    "recommendation": "Enforce `claimData.entityUUID == user.entityUUID` in `_release`, or derive the merkle leaf directly from the signed claim data (including entityUUID) so the signature and merkle proof are bound to the same entity. Reject any mismatch before accounting updates.",
    "exploit_scenario": "A signer whose entry exists in the merkle tree can sign ClaimData with a different entityUUID than the merkle-leaf `user.entityUUID`. If the platform signer co-signs (or the backend mistakenly signs), the contract will verify the leaf for one entity but apply state/accounting to another entityUUID. By cycling through entityUUIDs with zero claimed state, a signer could claim their entitlement multiple times, draining the pool beyond their allocation."
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x19fa8b33ff4530416aba757779996eba2cebe4629190971b3a9138995948fdbe
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x19fa8b33ff4530416aba757779996eba2cebe4629190971b3a9138995948fdbe",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xf83f55a9",
            "selector": "0xf83f55a9",
            "calldata_variants": [
                "0xf83f55a9",
                "0xf83f55a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfdf25f33",
            "selector": "0xfdf25f33",
            "calldata_variants": [
                "0xfdf25f33",
                "0xfdf25f330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xff3c2f89",
            "selector": "0xff3c2f89",
            "calldata_variants": [
                "0xff3c2f89",
                "0xff3c2f890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe2ca5974",
            "selector": "0xe2ca5974",
            "calldata_variants": [
                "0xe2ca5974",
                "0xe2ca59740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec87621c",
            "selector": "0xec87621c",
            "calldata_variants": [
                "0xec87621c",
                "0xec87621c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf698da25",
            "selector": "0xf698da25",
            "calldata_variants": [
                "0xf698da25",
                "0xf698da250000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}
low auth codex Replayable claim and carry withdrawal signatures (no nonce/used tracking) 65 no
view
evidence_json
{
    "evidence": "The signed structs contain no nonce/unique salt and the contract does not track used signatures or per-entity nonces.",
    "locations": [
        "src/unlock/v1/Types.sol:29",
        "src/unlock/v1/Types.sol:84",
        "src/unlock/v1/Distributor.sol:254",
        "src/unlock/v1/Distributor.sol:393"
    ],
    "recommendation": "Add a per-entity nonce (or used-digest mapping) to both ClaimData and CarryWithdrawalData, include it in the EIP-712 struct, and increment/store it on success. Alternatively, sign cumulative claimed/withdrawn totals to make signatures single-use.",
    "exploit_scenario": "Anyone who obtains a valid EIP-712 signature for `ClaimData` or `CarryWithdrawalData` can replay it multiple times before expiry. Each replay succeeds as long as the remaining claimable/withdrawable amount covers the signed `amount`, allowing repeated withdrawals to the signed receiver and bypassing intended one-time authorization semantics."
}
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": 5
}