019c0eaa-1573-73c9-bdcd-698f810a9fbd
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 42288 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 42289 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 42290 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 42291 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 42292 | capability.graph | complete | 1 / 3 | 2 months ago |
| 42293 | detector.run | complete | 1 / 3 | 2 months ago |
| 42294 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42491 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 42492 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-menrpxh_)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-menrpxh_)
ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#207-213) uses delegatecall to a input-controlled function id
- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#211)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#controlled-delegatecall
Reentrancy in GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8) (contracts/generic/GenericBridge.sol#308-459):
External calls:
- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)
- address(governance).sendValue(_amount) (contracts/generic/GenericBridge.sol#496)
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
- bt.initialize(_originToken,_chainIdsIndex[0],_name,_symbol,_decimals) (contracts/generic/GenericBridge.sol#351-357)
External calls sending eth:
- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
State variables written after the call(s):
- tokenMap[_chainIdsIndex[0]][_originToken] = address(bt) (contracts/generic/GenericBridge.sol#358)
GenericBridge.tokenMap (contracts/generic/GenericBridge.sol#40) can be used in cross function reentrancies:
- GenericBridge.tokenMap (contracts/generic/GenericBridge.sol#40)
Reentrancy in GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8) (contracts/generic/GenericBridge.sol#308-459):
External calls:
- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)
- address(governance).sendValue(_amount) (contracts/generic/GenericBridge.sol#496)
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
- bt_scope_0.initialize(_originToken,_chainIdsIndex[0],_name,_symbol,_decimals) (contracts/generic/GenericBridge.sol#407-413)
External calls sending eth:
- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
State variables written after the call(s):
- tokenMap[_chainIdsIndex[0]][_originToken] = address(bt_scope_0) (contracts/generic/GenericBridge.sol#414)
GenericBridge.tokenMap (contracts/generic/GenericBridge.sol#40) can be used in cross function reentrancies:
- GenericBridge.tokenMap (contracts/generic/GenericBridge.sol#40)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities
GenericBridge.safeTransferIn(address,address,uint256) (contracts/generic/GenericBridge.sol#504-520) uses a dangerous strict equality:
- require(bool,string)(erc20.balanceOf(address(this)).sub(balBefore) == _amount,!transfer from) (contracts/generic/GenericBridge.sol#515-518)
GenericBridge.safeTransferOut(address,address,uint256,uint256) (contracts/generic/GenericBridge.sol#522-546) uses a dangerous strict equality:
- require(bool,string)(balBefore.sub(erc20.balanceOf(address(this))) == _forUser + _forFee,!transfer to) (contracts/generic/GenericBridge.sol#540-544)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities
GenericBridge.setMinApprovers(uint256) (contracts/generic/GenericBridge.sol#102-105) should emit an event for:
- minApprovers = _val (contracts/generic/GenericBridge.sol#104)
GenericBridge.setDefaultFeePercentage(uint256) (contracts/generic/GenericBridge.sol#136-138) should emit an event for:
- defaultFeePercentage = _val (contracts/generic/GenericBridge.sol#137)
GenericBridge.setGovernanceFee(uint256) (contracts/generic/GenericBridge.sol#186-188) should emit an event for:
- claimFee = _fee (contracts/generic/GenericBridge.sol#187)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-events-arithmetic
DTOBridgeToken.initialize(address,uint256,string,string,uint8)._originalTokenAddress (contracts/generic/DTOBridgeToken.sol#24) lacks a zero-check on :
- originalTokenAddress = _originalTokenAddress (contracts/generic/DTOBridgeToken.sol#34)
Governable.setGovernance(address)._gov (contracts/generic/Governable.sol#18) lacks a zero-check on :
- governance = _gov (contracts/generic/Governable.sol#19)
GenericBridge.setFeeReceiver(address)._feeReceiver (contracts/generic/GenericBridge.sol#107) lacks a zero-check on :
- feeReceiver = _feeReceiver (contracts/generic/GenericBridge.sol#111)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
Reentrancy in GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8) (contracts/generic/GenericBridge.sol#308-459):
External calls:
- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)
- address(governance).sendValue(_amount) (contracts/generic/GenericBridge.sol#496)
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
- bt.initialize(_originToken,_chainIdsIndex[0],_name,_symbol,_decimals) (contracts/generic/GenericBridge.sol#351-357)
External calls sending eth:
- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
State variables written after the call(s):
- bridgeTokens[address(bt)] = true (contracts/generic/GenericBridge.sol#363)
- tokenMapReverse[address(bt)] = TokenInfo({addr:_originToken,chainId:_chainIdsIndex[0]}) (contracts/generic/GenericBridge.sol#359-362)
Reentrancy in GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8) (contracts/generic/GenericBridge.sol#308-459):
External calls:
- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)
- address(governance).sendValue(_amount) (contracts/generic/GenericBridge.sol#496)
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
- bt_scope_0.initialize(_originToken,_chainIdsIndex[0],_name,_symbol,_decimals) (contracts/generic/GenericBridge.sol#407-413)
External calls sending eth:
- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
State variables written after the call(s):
- bridgeTokens[address(bt_scope_0)] = true (contracts/generic/GenericBridge.sol#419)
- tokenMapReverse[address(bt_scope_0)] = TokenInfo({addr:_originToken,chainId:_chainIdsIndex[0]}) (contracts/generic/GenericBridge.sol#415-418)
Reentrancy in GenericBridge.requestBridge(address,bytes,uint256,uint256) (contracts/generic/GenericBridge.sol#190-256):
External calls:
- safeTransferIn(_tokenAddress,msg.sender,_amount) (contracts/generic/GenericBridge.sol#216)
- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol#92)
- erc20.safeTransferFrom(_from,address(this),_amount) (contracts/generic/GenericBridge.sol#514)
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#131)
- safeTransferOut(_tokenAddress,msg.sender,0,forFee) (contracts/generic/GenericBridge.sol#217)
- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol#92)
- address(_toAddr).sendValue(_forUser) (contracts/generic/GenericBridge.sol#529)
- address(getFeeRecipientAddress()).sendValue(_forFee) (contracts/generic/GenericBridge.sol#530)
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#131)
- erc20.safeTransfer(_toAddr,_forUser) (contracts/generic/GenericBridge.sol#535)
- erc20.safeTransfer(getFeeRecipientAddress(),_forFee) (contracts/generic/GenericBridge.sol#538)
External calls sending eth:
- safeTransferIn(_tokenAddress,msg.sender,_amount) (contracts/generic/GenericBridge.sol#216)
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#131)
- safeTransferOut(_tokenAddress,msg.sender,0,forFee) (contracts/generic/GenericBridge.sol#217)
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#131)
State variables written after the call(s):
- index ++ (contracts/generic/GenericBridge.sol#228)
- tokenMapList[_tokenAddress].push(_toChainId) (contracts/generic/GenericBridge.sol#231)
- tokenMapSupportCheck[_tokenAddress][_toChainId] = true (contracts/generic/GenericBridge.sol#232)
Reentrancy in GenericBridge.requestBridge(address,bytes,uint256,uint256) (contracts/generic/GenericBridge.sol#190-256):
External calls:
- ERC20BurnableUpgradeable(_tokenAddress).burnFrom(msg.sender,_amount) (contracts/generic/GenericBridge.sol#241-244)
State variables written after the call(s):
- index ++ (contracts/generic/GenericBridge.sol#254)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2
Reentrancy in ERC1967UpgradeUpgradeable._upgradeToAndCallSecure(address,bytes,bool) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#86-114):
External calls:
- _functionDelegateCall(newImplementation,data) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#96)
- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#211)
- _functionDelegateCall(newImplementation,abi.encodeWithSignature(upgradeTo(address),oldImplementation)) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#104-107)
- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#211)
Event emitted after the call(s):
- Upgraded(newImplementation) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#62)
- _upgradeTo(newImplementation) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#112)
Reentrancy in BlackholePreventionUpgrade._withdrawERC1155(address,address,uint256,uint256) (contracts/lib/BlackholePreventionUpgrade.sol#47-51):
External calls:
- IERC1155Upgradeable(tokenAddress).safeTransferFrom(address(this),receiver,id,amount,) (contracts/lib/BlackholePreventionUpgrade.sol#49)
Event emitted after the call(s):
- WithdrawStuckERC1155(receiver,tokenAddress,id,amount) (contracts/lib/BlackholePreventionUpgrade.sol#50)
Reentrancy in BlackholePreventionUpgrade._withdrawERC20(address,address,uint256) (contracts/lib/BlackholePreventionUpgrade.sol#31-37):
External calls:
- IERC20Upgradeable(tokenAddress).safeTransfer(receiver,amount) (contracts/lib/BlackholePreventionUpgrade.sol#34)
Event emitted after the call(s):
- WithdrawStuckERC20(receiver,tokenAddress,amount) (contracts/lib/BlackholePreventionUpgrade.sol#35)
Reentrancy in BlackholePreventionUpgrade._withdrawERC721(address,address,uint256) (contracts/lib/BlackholePreventionUpgrade.sol#39-45):
External calls:
- IERC721Upgradeable(tokenAddress).transferFrom(address(this),receiver,tokenId) (contracts/lib/BlackholePreventionUpgrade.sol#42)
Event emitted after the call(s):
- WithdrawStuckERC721(receiver,tokenAddress,tokenId) (contracts/lib/BlackholePreventionUpgrade.sol#43)
Reentrancy in BlackholePreventionUpgrade._withdrawEther(address,uint256) (contracts/lib/BlackholePreventionUpgrade.sol#23-29):
External calls:
- receiver.sendValue(amount) (contracts/lib/BlackholePreventionUpgrade.sol#26)
Event emitted after the call(s):
- WithdrawStuckEther(receiver,amount) (contracts/lib/BlackholePreventionUpgrade.sol#27)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
AddressUpgradeable.isContract(address) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#26-36) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#32-34)
AddressUpgradeable.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#168-188) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#180-183)
StorageSlotUpgradeable.getAddressSlot(bytes32) (@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#51-55) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#52-54)
StorageSlotUpgradeable.getBooleanSlot(bytes32) (@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#60-64) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#61-63)
StorageSlotUpgradeable.getBytes32Slot(bytes32) (@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#69-73) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#70-72)
StorageSlotUpgradeable.getUint256Slot(bytes32) (@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#78-82) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#79-81)
ChainIdHolding.__ChainIdHolding_init() (contracts/lib/ChainIdHolding.sol#8-14) uses assembly
- INLINE ASM (contracts/lib/ChainIdHolding.sol#10-12)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
3 different versions of Solidity are used:
- Version constraint ^0.8.0 is used by:
-^0.8.0 (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol#3)
-^0.8.0 (@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol#3)
-^0.8.0 (contracts/generic/DTOBridgeToken.sol#1)
-^0.8.0 (contracts/generic/GenericBridge.sol#1)
-^0.8.0 (contracts/generic/Governable.sol#1)
-^0.8.0 (contracts/interfaces/IDTOTokenBridge.sol#1)
-^0.8.0 (contracts/lib/BlackholePreventionUpgrade.sol#1)
-^0.8.0 (contracts/lib/DTOUpgradeableBase.sol#1)
- Version constraint ^0.8.2 is used by:
-^0.8.2 (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#3)
- Version constraint >=0.5.16 is used by:
->=0.5.16 (contracts/lib/ChainIdHolding.sol#1)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used
GenericBridge.removeApprover(address) (contracts/generic/GenericBridge.sol#156-168) has costly operations inside a loop:
- bridgeApprovers.pop() (contracts/generic/GenericBridge.sol#163)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#costly-operations-inside-a-loop
ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#17-19) is never used and should be removed
ContextUpgradeable._msgData() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#27-29) is never used and should be removed
ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init() (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#19-21) is never used and should be removed
ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init_unchained() (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#23-24) is never used and should be removed
ERC1967UpgradeUpgradeable._changeAdmin(address) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#148-151) is never used and should be removed
ERC1967UpgradeUpgradeable._getAdmin() (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#131-133) is never used and should be removed
ERC1967UpgradeUpgradeable._getBeacon() (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#167-169) is never used and should be removed
ERC1967UpgradeUpgradeable._setAdmin(address) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#138-141) is never used and should be removed
ERC1967UpgradeUpgradeable._setBeacon(address) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#174-181) is never used and should be removed
ERC1967UpgradeUpgradeable._upgradeBeaconToAndCall(address,bytes,bool) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#189-199) is never used and should be removed
ERC1967UpgradeUpgradeable._upgradeToAndCall(address,bytes,bool) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#70-79) is never used and should be removed
ERC20BurnableUpgradeable.__ERC20Burnable_init() (@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol#15-18) is never used and should be removed
ERC20BurnableUpgradeable.__ERC20Burnable_init_unchained() (@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol#20-21) is never used and should be removed
ReentrancyGuardUpgradeable.__ReentrancyGuard_init() (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#39-41) is never used and should be removed
ReentrancyGuardUpgradeable.__ReentrancyGuard_init_unchained() (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#43-45) is never used and should be removed
UUPSUpgradeable.__UUPSUpgradeable_init() (@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#21-24) is never used and should be removed
UUPSUpgradeable.__UUPSUpgradeable_init_unchained() (@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#26-27) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching.
It is used by:
- ^0.8.0 (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol#3)
- ^0.8.0 (contracts/generic/DTOBridgeToken.sol#1)
- ^0.8.0 (contracts/generic/GenericBridge.sol#1)
- ^0.8.0 (contracts/generic/Governable.sol#1)
- ^0.8.0 (contracts/interfaces/IDTOTokenBridge.sol#1)
- ^0.8.0 (contracts/lib/BlackholePreventionUpgrade.sol#1)
- ^0.8.0 (contracts/lib/DTOUpgradeableBase.sol#1)
Version constraint ^0.8.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching.
It is used by:
- ^0.8.2 (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#3)
Version constraint >=0.5.16 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- NestedCalldataArrayAbiReencodingSizeValidation
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup
- MissingEscapingInFormatting
- ImplicitConstructorCallvalueCheck
- TupleAssignmentMultiStackSlotComponents
- MemoryArrayCreationOverflow
- privateCanBeOverridden.
It is used by:
- >=0.5.16 (contracts/lib/ChainIdHolding.sol#1)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#207-213):
- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#211)
Low level call in AddressUpgradeable.sendValue(address,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#54-59):
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
Low level call in AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#122-133):
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#131)
Low level call in AddressUpgradeable.functionStaticCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#151-160):
- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#158)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Function OwnableUpgradeable.__Ownable_init() (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#28-31) is not in mixedCase
Function OwnableUpgradeable.__Ownable_init_unchained() (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#33-35) is not in mixedCase
Variable OwnableUpgradeable.__gap (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#77) is not in mixedCase
Function ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init() (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#19-21) is not in mixedCase
Function ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init_unchained() (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#23-24) is not in mixedCase
Variable ERC1967UpgradeUpgradeable.__gap (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#214) is not in mixedCase
Function UUPSUpgradeable.__UUPSUpgradeable_init() (@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#21-24) is not in mixedCase
Function UUPSUpgradeable.__UUPSUpgradeable_init_unchained() (@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#26-27) is not in mixedCase
Variable UUPSUpgradeable.__self (@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#29) is not in mixedCase
Variable UUPSUpgradeable.__gap (@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#80) is not in mixedCase
Function ReentrancyGuardUpgradeable.__ReentrancyGuard_init() (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#39-41) is not in mixedCase
Function ReentrancyGuardUpgradeable.__ReentrancyGuard_init_unchained() (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#43-45) is not in mixedCase
Variable ReentrancyGuardUpgradeable.__gap (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#67) is not in mixedCase
Function ERC20Upgradeable.__ERC20_init(string,string) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#54-57) is not in mixedCase
Function ERC20Upgradeable.__ERC20_init_unchained(string,string) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#59-62) is not in mixedCase
Variable ERC20Upgradeable.__gap (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#361) is not in mixedCase
Function ERC20BurnableUpgradeable.__ERC20Burnable_init() (@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol#15-18) is not in mixedCase
Function ERC20BurnableUpgradeable.__ERC20Burnable_init_unchained() (@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol#20-21) is not in mixedCase
Variable ERC20BurnableUpgradeable.__gap (@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol#50) is not in mixedCase
Function ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#17-19) is not in mixedCase
Function ContextUpgradeable.__Context_init_unchained() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#21-22) is not in mixedCase
Variable ContextUpgradeable.__gap (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#30) is not in mixedCase
Parameter DTOBridgeToken.initialize(address,uint256,string,string,uint8)._originalTokenAddress (contracts/generic/DTOBridgeToken.sol#24) is not in mixedCase
Parameter DTOBridgeToken.initialize(address,uint256,string,string,uint8)._originChainId (contracts/generic/DTOBridgeToken.sol#25) is not in mixedCase
Parameter DTOBridgeToken.initialize(address,uint256,string,string,uint8)._tokenName (contracts/generic/DTOBridgeToken.sol#26) is not in mixedCase
Parameter DTOBridgeToken.initialize(address,uint256,string,string,uint8)._tokenSymbol (contracts/generic/DTOBridgeToken.sol#27) is not in mixedCase
Parameter DTOBridgeToken.initialize(address,uint256,string,string,uint8).__decimals (contracts/generic/DTOBridgeToken.sol#28) is not in mixedCase
Parameter DTOBridgeToken.claimBridgeToken(address,address,uint256,uint256[],bytes32)._originToken (contracts/generic/DTOBridgeToken.sol#43) is not in mixedCase
Parameter DTOBridgeToken.claimBridgeToken(address,address,uint256,uint256[],bytes32)._to (contracts/generic/DTOBridgeToken.sol#44) is not in mixedCase
Parameter DTOBridgeToken.claimBridgeToken(address,address,uint256,uint256[],bytes32)._amount (contracts/generic/DTOBridgeToken.sol#45) is not in mixedCase
Parameter DTOBridgeToken.claimBridgeToken(address,address,uint256,uint256[],bytes32)._chainIdsIndex (contracts/generic/DTOBridgeToken.sol#46) is not in mixedCase
Parameter DTOBridgeToken.claimBridgeToken(address,address,uint256,uint256[],bytes32)._txHash (contracts/generic/DTOBridgeToken.sol#47) is not in mixedCase
Parameter GenericBridge.initialize(uint256[])._chainIds (contracts/generic/GenericBridge.sol#86) is not in mixedCase
Parameter GenericBridge.setMinApprovers(uint256)._val (contracts/generic/GenericBridge.sol#102) is not in mixedCase
Parameter GenericBridge.setFeeReceiver(address)._feeReceiver (contracts/generic/GenericBridge.sol#107) is not in mixedCase
Parameter GenericBridge.setDefaultFeePercentage(uint256)._val (contracts/generic/GenericBridge.sol#136) is not in mixedCase
Parameter GenericBridge.addApprover(address)._addr (contracts/generic/GenericBridge.sol#140) is not in mixedCase
Parameter GenericBridge.addApprovers(address[])._addrs (contracts/generic/GenericBridge.sol#147) is not in mixedCase
Parameter GenericBridge.removeApprover(address)._addr (contracts/generic/GenericBridge.sol#156) is not in mixedCase
Parameter GenericBridge.setSupportedChainId(uint256,bool)._chainId (contracts/generic/GenericBridge.sol#170) is not in mixedCase
Parameter GenericBridge.setSupportedChainId(uint256,bool)._val (contracts/generic/GenericBridge.sol#170) is not in mixedCase
Parameter GenericBridge.setSupportedChainIds(uint256[],bool)._chainIds (contracts/generic/GenericBridge.sol#177) is not in mixedCase
Parameter GenericBridge.setSupportedChainIds(uint256[],bool)._val (contracts/generic/GenericBridge.sol#177) is not in mixedCase
Parameter GenericBridge.setGovernanceFee(uint256)._fee (contracts/generic/GenericBridge.sol#186) is not in mixedCase
Parameter GenericBridge.requestBridge(address,bytes,uint256,uint256)._tokenAddress (contracts/generic/GenericBridge.sol#191) is not in mixedCase
Parameter GenericBridge.requestBridge(address,bytes,uint256,uint256)._toAddr (contracts/generic/GenericBridge.sol#192) is not in mixedCase
Parameter GenericBridge.requestBridge(address,bytes,uint256,uint256)._amount (contracts/generic/GenericBridge.sol#193) is not in mixedCase
Parameter GenericBridge.requestBridge(address,bytes,uint256,uint256)._toChainId (contracts/generic/GenericBridge.sol#194) is not in mixedCase
Parameter GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)._originToken (contracts/generic/GenericBridge.sol#309) is not in mixedCase
Parameter GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)._toAddr (contracts/generic/GenericBridge.sol#310) is not in mixedCase
Parameter GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)._amount (contracts/generic/GenericBridge.sol#311) is not in mixedCase
Parameter GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)._chainIdsIndex (contracts/generic/GenericBridge.sol#312) is not in mixedCase
Parameter GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)._txHash (contracts/generic/GenericBridge.sol#313) is not in mixedCase
Parameter GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)._name (contracts/generic/GenericBridge.sol#317) is not in mixedCase
Parameter GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)._symbol (contracts/generic/GenericBridge.sol#318) is not in mixedCase
Parameter GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)._decimals (contracts/generic/GenericBridge.sol#319) is not in mixedCase
Parameter GenericBridge.payClaimFee(uint256)._amount (contracts/generic/GenericBridge.sol#493) is not in mixedCase
Parameter GenericBridge.isBridgeToken(address)._token (contracts/generic/GenericBridge.sol#500) is not in mixedCase
Parameter GenericBridge.safeTransferIn(address,address,uint256)._token (contracts/generic/GenericBridge.sol#505) is not in mixedCase
Parameter GenericBridge.safeTransferIn(address,address,uint256)._from (contracts/generic/GenericBridge.sol#506) is not in mixedCase
Parameter GenericBridge.safeTransferIn(address,address,uint256)._amount (contracts/generic/GenericBridge.sol#507) is not in mixedCase
Parameter GenericBridge.safeTransferOut(address,address,uint256,uint256)._token (contracts/generic/GenericBridge.sol#523) is not in mixedCase
Parameter GenericBridge.safeTransferOut(address,address,uint256,uint256)._toAddr (contracts/generic/GenericBridge.sol#524) is not in mixedCase
Parameter GenericBridge.safeTransferOut(address,address,uint256,uint256)._forUser (contracts/generic/GenericBridge.sol#525) is not in mixedCase
Parameter GenericBridge.safeTransferOut(address,address,uint256,uint256)._forFee (contracts/generic/GenericBridge.sol#526) is not in mixedCase
Parameter GenericBridge.getSupportedChainsForToken(address)._token (contracts/generic/GenericBridge.sol#603) is not in mixedCase
Variable GenericBridge.NATIVE_TOKEN_ADDRESS (contracts/generic/GenericBridge.sol#33) is not in mixedCase
Function Governable.__Governable_initialize() (contracts/generic/Governable.sol#7-9) is not in mixedCase
Parameter Governable.setGovernance(address)._gov (contracts/generic/Governable.sol#18) is not in mixedCase
Function ChainIdHolding.__ChainIdHolding_init() (contracts/lib/ChainIdHolding.sol#8-14) is not in mixedCase
Function DTOUpgradeableBase.__DTOUpgradeableBase_initialize() (contracts/lib/DTOUpgradeableBase.sol#11-13) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
. analyzed (25 contracts with 100 detectors), 124 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.8.2",
"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.2",
"install_stderr": null,
"install_stdout": "Version '0.8.2' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-menrpxh_ --include-path /tmp/slither-menrpxh_/lib --include-path /tmp/slither-menrpxh_/lib/openzeppelin-contracts --allow-paths /tmp/slither-menrpxh_,/tmp/slither-menrpxh_/lib,/tmp/slither-menrpxh_/lib/openzeppelin-contracts,/tmp/slither-menrpxh_/src",
"remappings": [
"openzeppelin-contracts/=lib/openzeppelin-contracts/"
],
"source_files": [
"contracts/generic/GenericBridge.sol",
"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol",
"@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol",
"contracts/lib/BlackholePreventionUpgrade.sol",
"contracts/generic/DTOBridgeToken.sol",
"contracts/interfaces/IDTOTokenBridge.sol",
"contracts/generic/Governable.sol",
"contracts/lib/ChainIdHolding.sol",
"contracts/lib/DTOUpgradeableBase.sol",
"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol",
"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol",
"@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol",
"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol",
"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 124,
"workspace_hash": "04f95e886dcb0c4cc456ab94bfbaccdfbaf0b2b7db3842ab0035207b4acecbd1",
"duration_seconds": 1.8827497959136963,
"solc_version_requested": "0.8.2"
}
{"no_findings":false,"summary":"Found two auth-related issues: signatures are not domain-separated (replayable across bridge instances) and zero-address approvers can lower the effective signature threshold.","findings":[{"severity":"medium","category":"auth","title":"Signatures lack contract-domain separation, enabling replay across bridge instances","exploit_scenario":"Validators sign a valid claim for one GenericBridge instance. An attacker reuses the same (r,s,v) on a second GenericBridge deployed on the same chain with the same approver set. Because the signed data does not bind to address(this), verifySignatures accepts the signatures and the second instance mints/withdraws funds, allowing duplicate claims or draining liquidity on that instance.","recommendation":"Include address(this) (and ideally EIP-712 domain fields such as chainId and contract address) in the signed payload so signatures are valid only for a specific bridge instance. Update off-chain signing to match the new domain-separated digest.","evidence":"ClaimId omits contract address; verifySignatures uses the raw claimId digest.","locations":["contracts/generic/GenericBridge.sol:325","contracts/generic/GenericBridge.sol:274"]},{"severity":"low","category":"auth","title":"addApprovers allows zero address, letting invalid signatures count as approvals","exploit_scenario":"If governance accidentally adds address(0) via addApprovers, any invalid signature (ecrecover returns address(0)) is counted as a valid approver. An attacker then needs only minApprovers-1 real signatures to pass verification.","recommendation":"Reject zero addresses in addApprovers and/or ignore signer == address(0) inside verifySignatures.","evidence":"addApprovers has no non-zero check; verifySignatures treats any approverMap[signer] as valid.","locations":["contracts/generic/GenericBridge.sol:147","contracts/generic/GenericBridge.sol:285"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-h9guqe77
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0faf-8e8e-74a1-93a3-34c5e023a81d
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-h9guqe77 succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
@openzeppelin
exec
/bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-h9guqe77 succeeded in 7ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/generic/DTOBridgeToken.sol
================================================================================
pragma solidity ^0.8.0;
import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol"; // for WETH
import "../interfaces/IDTOTokenBridge.sol";
// import "./Governable.sol";
import "../lib/ChainIdHolding.sol";
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
contract DTOBridgeToken is
ERC20BurnableUpgradeable,
IDTOTokenBridge,
OwnableUpgradeable,
exec
/bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-h9guqe77 succeeded in 9ms:
require(
chainIds.length == originTokens.length &&
originTokens.length == fees.length,
"!input"
);
for (uint256 i = 0; i < originTokens.length; i++) {
feeForTokens[chainIds[i]][originTokens[i]] = fees[i];
emit SetFeeToken(
chainIds[i],
originTokens[i],
fees[i],
block.timestamp
);
}
}
function setDefaultFeePercentage(uint256 _val) external onlyGovernance {
defaultFeePercentage = _val;
}
exec
/bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-h9guqe77 succeeded in 7ms:
) external payable nonReentrant {
require(
_chainIdsIndex.length == 4 && chainId == _chainIdsIndex[2],
"!chain id claim"
);
bytes32 _claimId = keccak256(
abi.encode(
_originToken,
_toAddr,
_amount,
_chainIdsIndex,
_txHash,
_name,
_symbol,
_decimals
)
);
require(!alreadyClaims[_claimId], "already claim");
alreadyClaims[_claimId] = true;
require(verifySignatures(r, s, v, _claimId), "invalid signatures");
exec
/bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-h9guqe77 succeeded in 6ms:
require(receiver != address(0x0), "BHP:E-403");
if (IERC721Upgradeable(tokenAddress).ownerOf(tokenId) == address(this)) {
IERC721Upgradeable(tokenAddress).transferFrom(address(this), receiver, tokenId);
emit WithdrawStuckERC721(receiver, tokenAddress, tokenId);
}
}
function _withdrawERC1155(address payable receiver, address tokenAddress, uint256 id, uint256 amount) internal virtual {
require(receiver != address(0x0), "BHP:E-403");
IERC1155Upgradeable(tokenAddress).safeTransferFrom(address(this), receiver, id, amount, "");
emit WithdrawStuckERC1155(receiver, tokenAddress, id, amount);
}
}
================================================================================
FILE: contracts/lib/ChainIdHolding.sol
================================================================================
pragma solidity >=0.5.16;
// import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
exec
/bin/bash -lc "nl -ba contracts/generic/GenericBridge.sol | sed -n '120,260p'" in /tmp/codex-h9guqe77 succeeded in 11ms:
120 require(
121 chainIds.length == originTokens.length &&
122 originTokens.length == fees.length,
123 "!input"
124 );
125 for (uint256 i = 0; i < originTokens.length; i++) {
126 feeForTokens[chainIds[i]][originTokens[i]] = fees[i];
127 emit SetFeeToken(
128 chainIds[i],
129 originTokens[i],
130 fees[i],
131 block.timestamp
132 );
133 }
134 }
135
136 function setDefaultFeePercentage(uint256 _val) external onlyGovernance {
137 defaultFeePercentage = _val;
138 }
139
exec
/bin/bash -lc "nl -ba contracts/generic/GenericBridge.sol | sed -n '258,360p'" in /tmp/codex-h9guqe77 succeeded in 6ms:
258 function verifySignatures(
259 bytes32[] memory r,
260 bytes32[] memory s,
261 uint8[] memory v,
262 bytes32 signedData
263 ) internal returns (bool) {
264 require(minApprovers >= 2, "!min approvers");
265 require(bridgeApprovers.length >= minApprovers, "!min approvers");
266 address[] memory uniqueSigners = new address[](r.length);
267 uint256 successSigner = 0;
268 if (
269 r.length == s.length &&
270 s.length == v.length &&
271 v.length >= minApprovers
272 ) {
273 for (uint256 i = 0; i < r.length; i++) {
274 address signer = ecrecover(
275 keccak256(
276 abi.encodePacked(
277 "\x19Ethereum Signed Message:\n32",
codex
{"no_findings":false,"summary":"Found two auth-related issues: signatures are not domain-separated (replayable across bridge instances) and zero-address approvers can lower the effective signature threshold.","findings":[{"severity":"medium","category":"auth","title":"Signatures lack contract-domain separation, enabling replay across bridge instances","exploit_scenario":"Validators sign a valid claim for one GenericBridge instance. An attacker reuses the same (r,s,v) on a second GenericBridge deployed on the same chain with the same approver set. Because the signed data does not bind to address(this), verifySignatures accepts the signatures and the second instance mints/withdraws funds, allowing duplicate claims or draining liquidity on that instance.","recommendation":"Include address(this) (and ideally EIP-712 domain fields such as chainId and contract address) in the signed payload so signatures are valid only for a specific bridge instance. Update off-chain signing to match the new domain-separated digest.","evidence":"ClaimId omits contract address; verifySignatures uses the raw claimId digest.","locations":["contracts/generic/GenericBridge.sol:325","contracts/generic/GenericBridge.sol:274"]},{"severity":"low","category":"auth","title":"addApprovers allows zero address, letting invalid signatures count as approvals","exploit_scenario":"If governance accidentally adds address(0) via addApprovers, any invalid signature (ecrecover returns address(0)) is counted as a valid approver. An attacker then needs only minApprovers-1 real signatures to pass verification.","recommendation":"Reject zero addresses in addApprovers and/or ignore signer == address(0) inside verifySignatures.","evidence":"addApprovers has no non-zero check; verifySignatures treats any approverMap[signer] as valid.","locations":["contracts/generic/GenericBridge.sol:147","contracts/generic/GenericBridge.sol:285"]}]}
tokens used
29,408
{
"codex": {
"ran_at": "2026-01-30T16:19:25.742098+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 25,
"import_count": 35,
"first_party_contracts_count": 7
},
"summary": "Found two auth-related issues: signatures are not domain-separated (replayable across bridge instances) and zero-address approvers can lower the effective signature threshold.",
"raw_final": {
"summary": "Found two auth-related issues: signatures are not domain-separated (replayable across bridge instances) and zero-address approvers can lower the effective signature threshold.",
"findings": [
{
"title": "Signatures lack contract-domain separation, enabling replay across bridge instances",
"category": "auth",
"evidence": "ClaimId omits contract address; verifySignatures uses the raw claimId digest.",
"severity": "medium",
"locations": [
"contracts/generic/GenericBridge.sol:325",
"contracts/generic/GenericBridge.sol:274"
],
"recommendation": "Include address(this) (and ideally EIP-712 domain fields such as chainId and contract address) in the signed payload so signatures are valid only for a specific bridge instance. Update off-chain signing to match the new domain-separated digest.",
"exploit_scenario": "Validators sign a valid claim for one GenericBridge instance. An attacker reuses the same (r,s,v) on a second GenericBridge deployed on the same chain with the same approver set. Because the signed data does not bind to address(this), verifySignatures accepts the signatures and the second instance mints/withdraws funds, allowing duplicate claims or draining liquidity on that instance."
},
{
"title": "addApprovers allows zero address, letting invalid signatures count as approvals",
"category": "auth",
"evidence": "addApprovers has no non-zero check; verifySignatures treats any approverMap[signer] as valid.",
"severity": "low",
"locations": [
"contracts/generic/GenericBridge.sol:147",
"contracts/generic/GenericBridge.sol:285"
],
"recommendation": "Reject zero addresses in addApprovers and/or ignore signer == address(0) inside verifySignatures.",
"exploit_scenario": "If governance accidentally adds address(0) via addApprovers, any invalid signature (ecrecover returns address(0)) is counted as a valid approver. An attacker then needs only minApprovers-1 real signatures to pass verification."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x025c 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x94c9d29b 00000019: GT 0000001a: PUSH2 0x0144 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xc60c9a54 00000024: GT 00000025: PUSH2 0x00b6 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xdf2ebdbb 0000002f: GT 00000030: PUSH2 0x007a 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xdf2ebdbb 0000003a: EQ 0000003b: PUSH2 0x07d1 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe7246042 00000045: EQ 00000046: PUSH2 0x07f1 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xe9008d5b 00000050: EQ 00000051: PUSH2 0x0806 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xefdcd974 0000005b: EQ 0000005c: PUSH2 0x0840 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xf2fde38b 00000066: EQ 00000067: PUSH2 0x0860 0000006a: JUMPI 0000006b: DUP1 0000006c: PUSH4 0xffb2efb8 00000071: EQ 00000072: PUSH2 0x0880 00000075: JUMPI 00000076: PUSH2 0x025c 00000079: JUMP 0000007a: JUMPDEST 0000007b: DUP1 0000007c: PUSH4 0xc60c9a54 00000081: EQ 00000082: PUSH2 0x0700 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xd4638d4e 0000008c: EQ 0000008d: PUSH2 0x073c 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0xd641e916 00000097: EQ 00000098: PUSH2 0x075c 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0xd9bdd659 000000a2: EQ 000000a3: PUSH2 0x078d 000000a6: JUMPI 000000a7: DUP1 000000a8: PUSH4 0xdee157ca 000000ad: EQ 000000ae: PUSH2 0x07ba 000000b1: JUMPI 000000b2: PUSH2 0x025c 000000b5: JUMP 000000b6: JUMPDEST 000000b7: DUP1 000000b8: PUSH4 0xb3f00674 000000bd: GT 000000be: PUSH2 0x0108 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xb3f00674 000000c8: EQ 000000c9: PUSH2 0x063a 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0xb4824034 000000d3: EQ 000000d4: PUSH2 0x065b 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0xb4c530ad 000000de: EQ 000000df: PUSH2 0x0672 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0xb646c194 000000e9: EQ 000000ea: PUSH2 0x0685 000000ed: JUMPI 000000ee: DUP1 000000ef: PUSH4 0xb754577d 000000f4: EQ 000000f5: PUSH2 0x06a5 000000f8: JUMPI 000000f9: DUP1 000000fa: PUSH4 0xbfa411f8 000000ff: EQ 00000100: PUSH2 0x06de 00000103: JUMPI 00000104: PUSH2 0x025c 00000107: JUMP 00000108: JUMPDEST 00000109: DUP1 0000010a: PUSH4 0x94c9d29b 0000010f: EQ 00000110: PUSH2 0x056d 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x99d32fc4 0000011a: EQ 0000011b: PUSH2 0x05cd 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x9a8a0592 00000125: EQ 00000126: PUSH2 0x05e4 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0x9f92b715 00000130: EQ 00000131: PUSH2 0x05fa 00000134: JUMPI 00000135: DUP1 00000136: PUSH4 0xab033ea9 0000013b: EQ 0000013c: PUSH2 0x061a 0000013f: JUMPI 00000140: PUSH2 0x025c 00000143: JUMP 00000144: JUMPDEST 00000145: DUP1 00000146: PUSH4 0x54f7088f 0000014b: GT 0000014c: PUSH2 0x01dd 0000014f: JUMPI 00000150: DUP1 00000151: PUSH4 0x6d1ac36a 00000156: GT 00000157: PUSH2 0x01a1 0000015a: JUMPI 0000015b: DUP1 0000015c: PUSH4 0x6d1ac36a 00000161: EQ 00000162: PUSH2 0x0484 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0x6fe0e559 0000016c: EQ 0000016d: PUSH2 0x04b5 00000170: JUMPI 00000171: DUP1 00000172: PUSH4 0x715018a6 00000177: EQ 00000178: PUSH2 0x04d5 0000017b: JUMPI 0000017c: DUP1 0000017d: PUSH4 0x7439459b 00000182: EQ 00000183: PUSH2 0x04ea 00000186: JUMPI 00000187: DUP1 00000188: PUSH4 0x8d68fdc8 0000018d: EQ 0000018e: PUSH2 0x051f 00000191: JUMPI 00000192: DUP1 00000193: PUSH4 0x8da5cb5b 00000198: EQ 00000199: PUSH2 0x054f 0000019c: JUMPI 0000019d: PUSH2 0x025c 000001a0: JUMP 000001a1: JUMPDEST 000001a2: DUP1 000001a3: PUSH4 0x54f7088f 000001a8: EQ 000001a9: PUSH2 0x03ee 000001ac: JUMPI 000001ad: DUP1 000001ae: PUSH4 0x5aa6e675 000001b3: EQ 000001b4: PUSH2 0x0404 000001b7: JUMPI 000001b8: DUP1 000001b9: PUSH4 0x67844634 000001be: EQ 000001bf: PUSH2 0x0424 000001c2: JUMPI 000001c3: DUP1 000001c4: PUSH4 0x6a882d51 000001c9: EQ 000001ca: PUSH2 0x0444 000001cd: JUMPI 000001ce: DUP1 000001cf: PUSH4 0x6cf4c88f 000001d4: EQ 000001d5: PUSH2 0x0464 000001d8: JUMPI 000001d9: PUSH2 0x025c 000001dc: JUMP 000001dd: JUMPDEST 000001de: DUP1 000001df: PUSH4 0x36db95fb 000001e4: GT 000001e5: PUSH2 0x0224 000001e8: JUMPI 000001e9: DUP1 000001ea: PUSH4 0x36db95fb 000001ef: EQ 000001f0: PUSH2 0x033a 000001f3: JUMPI 000001f4: DUP1 000001f5: PUSH4 0x45923dfb 000001fa: EQ 000001fb: PUSH2 0x035a 000001fe: JUMPI 000001ff: DUP1 00000200: PUSH4 0x4cf2ab32 00000205: EQ 00000206: PUSH2 0x037a 00000209: JUMPI 0000020a: DUP1 0000020b: PUSH4 0x4f1ef286 00000210: EQ 00000211: PUSH2 0x03bb 00000214: JUMPI 00000215: DUP1 00000216: PUSH4 0x5260136c 0000021b: EQ 0000021c: PUSH2 0x03ce 0000021f: JUMPI 00000220: PUSH2 0x025c 00000223: JUMP 00000224: JUMPDEST 00000225: DUP1 00000226: PUSH4 0x13ac7898 0000022b: EQ 0000022c: PUSH2 0x0261 0000022f: JUMPI 00000230: DUP1 00000231: PUSH4 0x2986c0e5 00000236: EQ 00000237: PUSH2 0x02c0 0000023a: JUMPI 0000023b: DUP1 0000023c: PUSH4 0x2db34b27 00000241: EQ 00000242: PUSH2 0x02e5 00000245: JUMPI 00000246: DUP1 00000247: PUSH4 0x32a69330 0000024c: EQ 0000024d: PUSH2 0x02fa 00000250: JUMPI 00000251: DUP1 00000252: PUSH4 0x3659cfe6 00000257: EQ 00000258: PUSH2 0x031a 0000025b: JUMPI 0000025c: JUMPDEST 0000025d: PUSH1 0x00 0000025f: DUP1 00000260: REVERT 00000261: JUMPDEST 00000262: CALLVALUE 00000263: DUP1 00000264: ISZERO 00000265: PUSH2 0x026d 00000268: JUMPI 00000269: PUSH1 0x00 0000026b: DUP1 0000026c: REVERT 0000026d: JUMPDEST 0000026e: POP 0000026f: PUSH2 0x02a3 00000272: PUSH2 0x027c 00000275: CALLDATASIZE 00000276: PUSH1 0x04 00000278: PUSH2 0x3c71 0000027b: JUMP 0000027c: JUMPDEST 0000027d: PUSH2 0x0104 00000280: PUSH1 0x20 00000282: SWAP1 00000283: DUP2 00000284: MSTORE 00000285: PUSH1 0x00 00000287: SWAP3 00000288: DUP4 00000289: MSTORE 0000028a: PUSH1 0x40 0000028c: DUP1 0000028d: DUP5 0000028e: KECCAK256 0000028f: SWAP1 00000290: SWAP2 00000291: MSTORE 00000292: SWAP1 00000293: DUP3 00000294: MSTORE 00000295: SWAP1 00000296: KECCAK256 00000297: SLOAD 00000298: PUSH1 0x01 0000029a: PUSH1 0x01 0000029c: PUSH1 0xa0 0000029e: SHL 0000029f: SUB 000002a0: AND 000002a1: DUP2 000002a2: JUMP 000002a3: JUMPDEST 000002a4: PUSH1 0x40 000002a6: MLOAD 000002a7: PUSH1 0x01 000002a9: PUSH1 0x01 000002ab: PUSH1 0xa0 000002ad: SHL 000002ae: SUB 000002af: SWAP1 000002b0: SWAP2 000002b1: AND 000002b2: DUP2 000002b3: MSTORE 000002b4: PUSH1 0x20 000002b6: ADD 000002b7: JUMPDEST 000002b8: PUSH1 0x40 000002ba: MLOAD 000002bb: DUP1 000002bc: SWAP2 000002bd: SUB 000002be: SWAP1 000002bf: RETURN 000002c0: JUMPDEST 000002c1: CALLVALUE 000002c2: DUP1 000002c3: ISZERO 000002c4: PUSH2 0x02cc 000002c7: JUMPI 000002c8: PUSH1 0x00 000002ca: DUP1 000002cb: REVERT 000002cc: JUMPDEST 000002cd: POP 000002ce: PUSH2 0x02d7 000002d1: PUSH2 0x0108 000002d4: SLOAD 000002d5: DUP2 000002d6: JUMP 000002d7: JUMPDEST 000002d8: PUSH1 0x40 000002da: MLOAD 000002db: SWAP1 000002dc: DUP2 000002dd: MSTORE 000002de: PUSH1 0x20 000002e0: ADD 000002e1: PUSH2 0x02b7 000002e4: JUMP 000002e5: JUMPDEST 000002e6: PUSH2 0x02f8 000002e9: PUSH2 0x02f3 000002ec: CALLDATASIZE 000002ed: PUSH1 0x04 000002ef: PUSH2 0x3a62 000002f2: JUMP 000002f3: JUMPDEST 000002f4: PUSH2 0x08a0 000002f7: JUMP 000002f8: JUMPDEST 000002f9: STOP 000002fa: JUMPDEST 000002fb: CALLVALUE 000002fc: DUP1 000002fd: ISZERO 000002fe: PUSH2 0x0306 00000301: JUMPI 00000302: PUSH1 0x00 00000304: DUP1 00000305: REVERT 00000306: JUMPDEST 00000307: POP 00000308: PUSH2 0x02f8 0000030b: PUSH2 0x0315 0000030e: CALLDATASIZE 0000030f: PUSH1 0x04 00000311: PUSH2 0x3c41 00000314: JUMP 00000315: JUMPDEST 00000316: PUSH2 0x0c3b 00000319: JUMP 0000031a: JUMPDEST 0000031b: CALLVALUE 0000031c: DUP1 0000031d: ISZERO 0000031e: PUSH2 0x0326 00000321: JUMPI 00000322: PUSH1 0x00 00000324: DUP1 00000325: REVERT 00000326: JUMPDEST 00000327: POP 00000328: PUSH2 0x02f8 0000032b: PUSH2 0x0335 0000032e: CALLDATASIZE 0000032f: PUSH1 0x04 00000331: PUSH2 0x38b7 00000334: JUMP 00000335: JUMPDEST 00000336: PUSH2 0x0c6b 00000339: JUMP 0000033a: JUMPDEST 0000033b: CALLVALUE 0000033c: DUP1 0000033d: ISZERO 0000033e: PUSH2 0x0346 00000341: JUMPI 00000342: PUSH1 0x00 00000344: DUP1 00000345: REVERT 00000346: JUMPDEST 00000347: POP 00000348: PUSH2 0x02d7 0000034b: PUSH2 0x0355 0000034e: CALLDATASIZE 0000034f: PUSH1 0x04 00000351: PUSH2 0x3ac0 00000354: JUMP 00000355: JUMPDEST 00000356: PUSH2 0x0d34 00000359: JUMP 0000035a: JUMPDEST 0000035b: CALLVALUE 0000035c: DUP1 0000035d: ISZERO 0000035e: PUSH2 0x0366 00000361: JUMPI 00000362: PUSH1 0x00 00000364: DUP1 00000365: REVERT 00000366: JUMPDEST 00000367: POP 00000368: PUSH2 0x02a3 0000036b: PUSH2 0x0375 0000036e: CALLDATASIZE 0000036f: PUSH1 0x04 00000371: PUSH2 0x3c41 00000374: JUMP 00000375: JUMPDEST 00000376: PUSH2 0x0d66 00000379: JUMP 0000037a: JUMPDEST 0000037b: CALLVALUE 0000037c: DUP1 0000037d: ISZERO 0000037e: PUSH2 0x0386 00000381: JUMPI 00000382: PUSH1 0x00 00000384: DUP1 00000385: REVERT 00000386: JUMPDEST 00000387: POP 00000388: PUSH2 0x03ab 0000038b: PUSH2 0x0395 0000038e: CALLDATASIZE 0000038f: PUSH1 0x04 00000391: PUSH2 0x3c41 00000394: JUMP 00000395: JUMPDEST 00000396: PUSH2 0x0101 00000399: PUSH1 0x20 0000039b: MSTORE 0000039c: PUSH1 0x00 0000039e: SWAP1 0000039f: DUP2 000003a0: MSTORE 000003a1: PUSH1 0x40 000003a3: SWAP1 000003a4: KECCAK256 000003a5: SLOAD 000003a6: PUSH1 0xff 000003a8: AND 000003a9: DUP2 000003aa: JUMP 000003ab: JUMPDEST 000003ac: PUSH1 0x40 000003ae: MLOAD 000003af: SWAP1 000003b0: ISZERO 000003b1: ISZERO 000003b2: DUP2 000003b3: MSTORE 000003b4: PUSH1 0x20 000003b6: ADD 000003b7: PUSH2 0x02b7 000003ba: JUMP 000003bb: JUMPDEST 000003bc: PUSH2 0x02f8 000003bf: PUSH2 0x03c9 000003c2: CALLDATASIZE 000003c3: PUSH1 0x04 000003c5: PUSH2 0x3a14 000003c8: JUMP 000003c9: JUMPDEST 000003ca: PUSH2 0x0d90 000003cd: JUMP 000003ce: JUMPDEST 000003cf: CALLVALUE 000003d0: DUP1 000003d1: ISZERO 000003d2: PUSH2 0x03da 000003d5: JUMPI 000003d6: PUSH1 0x00 000003d8: DUP1 000003d9: REVERT 000003da: JUMPDEST 000003db: POP 000003dc: PUSH2 0x02f8 000003df: PUSH2 0x03e9 000003e2: CALLDATASIZE 000003e3: PUSH1 0x04 000003e5: PUSH2 0x3b51 000003e8: JUMP 000003e9: JUMPDEST 000003ea: PUSH2 0x0e4a 000003ed: JUMP 000003ee: JUMPDEST 000003ef: CALLVALUE 000003f0: DUP1 000003f1: ISZERO 000003f2: PUSH2 0x03fa 000003f5: JUMPI 000003f6: PUSH1 0x00 000003f8: DUP1 000003f9: REVERT 000003fa: JUMPDEST 000003fb: POP 000003fc: PUSH2 0x02d7 000003ff: PUSH2 0x2710 00000402: DUP2 00000403: JUMP 00000404: JUMPDEST 00000405: CALLVALUE 00000406: DUP1 00000407: ISZERO 00000408: PUSH2 0x0410 0000040b: JUMPI 0000040c: PUSH1 0x00 0000040e: DUP1 0000040f: REVERT 00000410: JUMPDEST 00000411: POP 00000412: PUSH1 0xfb 00000414: SLOAD 00000415: PUSH2 0x02a3 00000418: SWAP1 00000419: PUSH1 0x01 0000041b: PUSH1 0x01 0000041d: PUSH1 0xa0 0000041f: SHL 00000420: SUB 00000421: AND 00000422: DUP2 00000423: JUMP 00000424: JUMPDEST 00000425: CALLVALUE 00000426: DUP1 00000427: ISZERO 00000428: PUSH2 0x0430 0000042b: JUMPI 0000042c: PUSH1 0x00 0000042e: DUP1 0000042f: REVERT 00000430: JUMPDEST 00000431: POP 00000432: PUSH2 0x02f8 00000435: PUSH2 0x043f 00000438: CALLDATASIZE 00000439: PUSH1 0x04 0000043b: PUSH2 0x3bd5 0000043e: JUMP 0000043f: JUMPDEST 00000440: PUSH2 0x1061 00000443: JUMP 00000444: JUMPDEST 00000445: CALLVALUE 00000446: DUP1 00000447: ISZERO 00000448: PUSH2 0x0450 0000044b: JUMPI 0000044c: PUSH1 0x00 0000044e: DUP1 0000044f: REVERT 00000450: JUMPDEST 00000451: POP 00000452: PUSH2 0x02f8 00000455: PUSH2 0x045f 00000458: CALLDATASIZE 00000459: PUSH1 0x04 0000045b: PUSH2 0x3aeb 0000045e: JUMP 0000045f: JUMPDEST 00000460: PUSH2 0x1102 00000463: JUMP 00000464: JUMPDEST 00000465: CALLVALUE 00000466: DUP1 00000467: ISZERO 00000468: PUSH2 0x0470 0000046b: JUMPI 0000046c: PUSH1 0x00 0000046e: DUP1 0000046f: REVERT 00000470: JUMPDEST 00000471: POP 00000472: PUSH2 0x02f8 00000475: PUSH2 0x047f 00000478: CALLDATASIZE 00000479: PUSH1 0x04 0000047b: PUSH2 0x38b7 0000047e: JUMP 0000047f: JUMPDEST 00000480: PUSH2 0x125f 00000483: JUMP 00000484: JUMPDEST 00000485: CALLVALUE 00000486: DUP1 00000487: ISZERO 00000488: PUSH2 0x0490 0000048b: JUMPI 0000048c: PUSH1 0x00 0000048e: DUP1 0000048f: REVERT 00000490: JUMPDEST 00000491: POP 00000492: PUSH2 0x03ab 00000495: PUSH2 0x049f 00000498: CALLDATASIZE 00000499: PUSH1 0x04 0000049b: PUSH2 0x38b7 0000049e: JUMP 0000049f: JUMPDEST 000004a0: PUSH2 0x0106 000004a3: PUSH1 0x20 000004a5: MSTORE 000004a6: PUSH1 0x00 000004a8: SWAP1 000004a9: DUP2 000004aa: MSTORE 000004ab: PUSH1 0x40 000004ad: SWAP1 000004ae: KECCAK256 000004af: SLOAD 000004b0: PUSH1 0xff 000004b2: AND 000004b3: DUP2 000004b4: JUMP 000004b5: JUMPDEST 000004b6: CALLVALUE 000004b7: DUP1 000004b8: ISZERO 000004b9: PUSH2 0x04c1 000004bc: JUMPI 000004bd: PUSH1 0x00 000004bf: DUP1 000004c0: REVERT 000004c1: JUMPDEST 000004c2: POP 000004c3: PUSH2 0x02f8 000004c6: PUSH2 0x04d0 000004c9: CALLDATASIZE 000004ca: PUSH1 0x04 000004cc: PUSH2 0x3b1e 000004cf: JUMP 000004d0: JUMPDEST 000004d1: PUSH2 0x1444 000004d4: JUMP 000004d5: JUMPDEST 000004d6: CALLVALUE 000004d7: DUP1 000004d8: ISZERO 000004d9: PUSH2 0x04e1 000004dc: JUMPI 000004dd: PUSH1 0x00 000004df: DUP1 000004e0: REVERT 000004e1: JUMPDEST 000004e2: POP 000004e3: PUSH2 0x02f8 000004e6: PUSH2 0x15cb 000004e9: JUMP 000004ea: JUMPDEST 000004eb: CALLVALUE 000004ec: DUP1 000004ed: ISZERO 000004ee: PUSH2 0x04f6 000004f1: JUMPI 000004f2: PUSH1 0x00 000004f4: DUP1 000004f5: REVERT 000004f6: JUMPDEST 000004f7: POP 000004f8: PUSH2 0x050a 000004fb: PUSH2 0x0505 000004fe: CALLDATASIZE 000004ff: PUSH1 0x04 00000501: PUSH2 0x38b7 00000504: JUMP 00000505: JUMPDEST 00000506: PUSH2 0x1601 00000509: JUMP 0000050a: JUMPDEST 0000050b: PUSH1 0x40 0000050d: DUP1 0000050e: MLOAD 0000050f: SWAP3 00000510: DUP4 00000511: MSTORE 00000512: PUSH1 0x20 00000514: DUP4 00000515: ADD 00000516: SWAP2 00000517: SWAP1 00000518: SWAP2 00000519: MSTORE 0000051a: ADD 0000051b: PUSH2 0x02b7 0000051e: JUMP 0000051f: JUMPDEST 00000520: CALLVALUE 00000521: DUP1 00000522: ISZERO 00000523: PUSH2 0x052b 00000526: JUMPI 00000527: PUSH1 0x00 00000529: DUP1 0000052a: REVERT 0000052b: JUMPDEST 0000052c: POP 0000052d: PUSH2 0x03ab 00000530: PUSH2 0x053a 00000533: CALLDATASIZE 00000534: PUSH1 0x04 00000536: PUSH2 0x3c41 00000539: JUMP 0000053a: JUMPDEST 0000053b: PUSH1 0xfe 0000053d: PUSH1 0x20 0000053f: MSTORE 00000540: PUSH1 0x00 00000542: SWAP1 00000543: DUP2 00000544: MSTORE 00000545: PUSH1 0x40 00000547: SWAP1 00000548: KECCAK256 00000549: SLOAD 0000054a: PUSH1 0xff 0000054c: AND 0000054d: DUP2 0000054e: JUMP 0000054f: JUMPDEST 00000550: CALLVALUE 00000551: DUP1 00000552: ISZERO 00000553: PUSH2 0x055b 00000556: JUMPI 00000557: PUSH1 0x00 00000559: DUP1 0000055a: REVERT 0000055b: JUMPDEST 0000055c: POP 0000055d: PUSH1 0x97 0000055f: SLOAD 00000560: PUSH1 0x01 00000562: PUSH1 0x01 00000564: PUSH1 0xa0 00000566: SHL 00000567: SUB 00000568: AND 00000569: PUSH2 0x02a3 0000056c: JUMP 0000056d: JUMPDEST 0000056e: CALLVALUE 0000056f: DUP1 00000570: ISZERO 00000571: PUSH2 0x0579 00000574: JUMPI 00000575: PUSH1 0x00 00000577: DUP1 00000578: REVERT 00000579: JUMPDEST 0000057a: POP 0000057b: PUSH2 0x05ae 0000057e: PUSH2 0x0588 00000581: CALLDATASIZE 00000582: PUSH1 0x04 00000584: PUSH2 0x38b7 00000587: JUMP 00000588: JUMPDEST 00000589: PUSH2 0x0105 0000058c: PUSH1 0x20 0000058e: MSTORE 0000058f: PUSH1 0x00 00000591: SWAP1 00000592: DUP2 00000593: MSTORE 00000594: PUSH1 0x40 00000596: SWAP1 00000597: KECCAK256 00000598: DUP1 00000599: SLOAD 0000059a: PUSH1 0x01 0000059c: SWAP1 0000059d: SWAP2 0000059e: ADD 0000059f: SLOAD 000005a0: PUSH1 0x01 000005a2: PUSH1 0x01 000005a4: PUSH1 0xa0 000005a6: SHL 000005a7: SUB 000005a8: SWAP1 000005a9: SWAP2 000005aa: AND 000005ab: SWAP1 000005ac: DUP3 000005ad: JUMP 000005ae: JUMPDEST 000005af: PUSH1 0x40 000005b1: DUP1 000005b2: MLOAD 000005b3: PUSH1 0x01 000005b5: PUSH1 0x01 000005b7: PUSH1 0xa0 000005b9: SHL 000005ba: SUB 000005bb: SWAP1 000005bc: SWAP4 000005bd: AND 000005be: DUP4 000005bf: MSTORE 000005c0: PUSH1 0x20 000005c2: DUP4 000005c3: ADD 000005c4: SWAP2 000005c5: SWAP1 000005c6: SWAP2 000005c7: MSTORE 000005c8: ADD 000005c9: PUSH2 0x02b7 000005cc: JUMP 000005cd: JUMPDEST 000005ce: CALLVALUE 000005cf: DUP1 000005d0: ISZERO 000005d1: PUSH2 0x05d9 000005d4: JUMPI 000005d5: PUSH1 0x00 000005d7: DUP1 000005d8: REVERT 000005d9: JUMPDEST 000005da: POP 000005db: PUSH2 0x02d7 000005de: PUSH2 0x0107 000005e1: SLOAD 000005e2: DUP2 000005e3: JUMP 000005e4: JUMPDEST 000005e5: CALLVALUE 000005e6: DUP1 000005e7: ISZERO 000005e8: PUSH2 0x05f0 000005eb: JUMPI 000005ec: PUSH1 0x00 000005ee: DUP1 000005ef: REVERT 000005f0: JUMPDEST 000005f1: POP 000005f2: PUSH2 0x02d7 000005f5: PUSH1 0xfc 000005f7: SLOAD 000005f8: DUP2 000005f9: JUMP 000005fa: JUMPDEST 000005fb: CALLVALUE 000005fc: DUP1 000005fd: ISZERO 000005fe: PUSH2 0x0606 00000601: JUMPI 00000602: PUSH1 0x00 00000604: DUP1 00000605: REVERT 00000606: JUMPDEST 00000607: POP 00000608: PUSH2 0x02f8 0000060b: PUSH2 0x0615 0000060e: CALLDATASIZE 0000060f: PUSH1 0x04 00000611: PUSH2 0x3c41 00000614: JUMP 00000615: JUMPDEST 00000616: PUSH2 0x1622 00000619: JUMP 0000061a: JUMPDEST 0000061b: CALLVALUE 0000061c: DUP1 0000061d: ISZERO 0000061e: PUSH2 0x0626 00000621: JUMPI 00000622: PUSH1 0x00 00000624: DUP1 00000625: REVERT 00000626: JUMPDEST 00000627: POP 00000628: PUSH2 0x02f8 0000062b: PUSH2 0x0635 0000062e: CALLDATASIZE 0000062f: PUSH1 0x04 00000631: PUSH2 0x38b7 00000634: JUMP 00000635: JUMPDEST 00000636: PUSH2 0x1652 00000639: JUMP 0000063a: JUMPDEST 0000063b: CALLVALUE 0000063c: DUP1 0000063d: ISZERO 0000063e: PUSH2 0x0646 00000641: JUMPI 00000642: PUSH1 0x00 00000644: DUP1 00000645: REVERT 00000646: JUMPDEST 00000647: POP 00000648: PUSH2 0x010a 0000064b: SLOAD 0000064c: PUSH2 0x02a3 0000064f: SWAP1 00000650: PUSH1 0x01 00000652: PUSH1 0x01 00000654: PUSH1 0xa0 00000656: SHL 00000657: SUB 00000658: AND 00000659: DUP2 0000065a: JUMP 0000065b: JUMPDEST 0000065c: CALLVALUE 0000065d: DUP1 0000065e: ISZERO 0000065f: PUSH2 0x0667 00000662: JUMPI 00000663: PUSH1 0x00 00000665: DUP1 00000666: REVERT 00000667: JUMPDEST 00000668: POP 00000669: PUSH2 0x02d7 0000066c: PUSH2 0x010c 0000066f: SLOAD 00000670: DUP2 00000671: JUMP 00000672: JUMPDEST 00000673: PUSH2 0x02f8 00000676: PUSH2 0x0680 00000679: CALLDATASIZE 0000067a: PUSH1 0x04 0000067c: PUSH2 0x38d3 0000067f: JUMP 00000680: JUMPDEST 00000681: PUSH2 0x169e 00000684: JUMP 00000685: JUMPDEST 00000686: CALLVALUE 00000687: DUP1 00000688: ISZERO 00000689: PUSH2 0x0691 0000068c: JUMPI 0000068d: PUSH1 0x00 0000068f: DUP1 00000690: REVERT 00000691: JUMPDEST 00000692: POP 00000693: PUSH2 0x02f8 00000696: PUSH2 0x06a0 00000699: CALLDATASIZE 0000069a: PUSH1 0x04 0000069c: PUSH2 0x38b7 0000069f: JUMP 000006a0: JUMPDEST 000006a1: PUSH2 0x209a 000006a4: JUMP 000006a5: JUMPDEST 000006a6: CALLVALUE 000006a7: DUP1 000006a8: ISZERO 000006a9: PUSH2 0x06b1 000006ac: JUMPI 000006ad: PUSH1 0x00 000006af: DUP1 000006b0: REVERT 000006b1: JUMPDEST 000006b2: POP 000006b3: PUSH2 0x02d7 000006b6: PUSH2 0x06c0 000006b9: CALLDATASIZE 000006ba: PUSH1 0x04 000006bc: PUSH2 0x3c71 000006bf: JUMP 000006c0: JUMPDEST 000006c1: PUSH2 0x010b 000006c4: PUSH1 0x20 000006c6: SWAP1 000006c7: DUP2 000006c8: MSTORE 000006c9: PUSH1 0x00 000006cb: SWAP3 000006cc: DUP4 000006cd: MSTORE 000006ce: PUSH1 0x40 000006d0: DUP1 000006d1: DUP5 000006d2: KECCAK256 000006d3: SWAP1 000006d4: SWAP2 000006d5: MSTORE 000006d6: SWAP1 000006d7: DUP3 000006d8: MSTORE 000006d9: SWAP1 000006da: KECCAK256 000006db: SLOAD 000006dc: DUP2 000006dd: JUMP 000006de: JUMPDEST 000006df: CALLVALUE 000006e0: DUP1 000006e1: ISZERO 000006e2: PUSH2 0x06ea 000006e5: JUMPI 000006e6: PUSH1 0x00 000006e8: DUP1 000006e9: REVERT 000006ea: JUMPDEST 000006eb: POP 000006ec: PUSH2 0x06f3 000006ef: PUSH2 0x21d2 000006f2: JUMP 000006f3: JUMPDEST 000006f4: PUSH1 0x40 000006f6: MLOAD 000006f7: PUSH2 0x02b7 000006fa: SWAP2 000006fb: SWAP1 000006fc: PUSH2 0x3e4a 000006ff: JUMP 00000700: JUMPDEST 00000701: CALLVALUE 00000702: DUP1 00000703: ISZERO 00000704: PUSH2 0x070c 00000707: JUMPI 00000708: PUSH1 0x00 0000070a: DUP1 0000070b: REVERT 0000070c: JUMPDEST 0000070d: POP 0000070e: PUSH2 0x03ab 00000711: PUSH2 0x071b 00000714: CALLDATASIZE 00000715: PUSH1 0x04 00000717: PUSH2 0x3ac0 0000071a: JUMP 0000071b: JUMPDEST 0000071c: PUSH2 0x0103 0000071f: PUSH1 0x20 00000721: SWAP1 00000722: DUP2 00000723: MSTORE 00000724: PUSH1 0x00 00000726: SWAP3 00000727: DUP4 00000728: MSTORE 00000729: PUSH1 0x40 0000072b: DUP1 0000072c: DUP5 0000072d: KECCAK256 0000072e: SWAP1 0000072f: SWAP2 00000730: MSTORE 00000731: SWAP1 00000732: DUP3 00000733: MSTORE 00000734: SWAP1 00000735: KECCAK256 00000736: SLOAD 00000737: PUSH1 0xff 00000739: AND 0000073a: DUP2 0000073b: JUMP 0000073c: JUMPDEST 0000073d: CALLVALUE 0000073e: DUP1 0000073f: ISZERO 00000740: PUSH2 0x0748 00000743: JUMPI 00000744: PUSH1 0x00 00000746: DUP1 00000747: REVERT 00000748: JUMPDEST 00000749: POP 0000074a: PUSH2 0x02f8 0000074d: PUSH2 0x0757 00000750: CALLDATASIZE 00000751: PUSH1 0x04 00000753: PUSH2 0x3c41 00000756: JUMP 00000757: JUMPDEST 00000758: PUSH2 0x2234 0000075b: JUMP 0000075c: JUMPDEST 0000075d: CALLVALUE 0000075e: DUP1 0000075f: ISZERO 00000760: PUSH2 0x0768 00000763: JUMPI 00000764: PUSH1 0x00 00000766: DUP1 00000767: REVERT 00000768: JUMPDEST 00000769: POP 0000076a: PUSH2 0x03ab 0000076d: PUSH2 0x0777 00000770: CALLDATASIZE 00000771: PUSH1 0x04 00000773: PUSH2 0x38b7 00000776: JUMP 00000777: JUMPDEST 00000778: PUSH2 0x0100 0000077b: PUSH1 0x20 0000077d: MSTORE 0000077e: PUSH1 0x00 00000780: SWAP1 00000781: DUP2 00000782: MSTORE 00000783: PUSH1 0x40 00000785: SWAP1 00000786: KECCAK256 00000787: SLOAD 00000788: PUSH1 0xff 0000078a: AND 0000078b: DUP2 0000078c: JUMP 0000078d: JUMPDEST 0000078e: CALLVALUE 0000078f: DUP1 00000790: ISZERO 00000791: PUSH2 0x0799 00000794: JUMPI 00000795: PUSH1 0x00 00000797: DUP1 00000798: REVERT 00000799: JUMPDEST 0000079a: POP 0000079b: PUSH2 0x07ad 0000079e: PUSH2 0x07a8 000007a1: CALLDATASIZE 000007a2: PUSH1 0x04 000007a4: PUSH2 0x38b7 000007a7: JUMP 000007a8: JUMPDEST 000007a9: PUSH2 0x22a9 000007ac: JUMP 000007ad: JUMPDEST 000007ae: PUSH1 0x40 000007b0: MLOAD 000007b1: PUSH2 0x02b7 000007b4: SWAP2 000007b5: SWAP1 000007b6: PUSH2 0x3e97 000007b9: JUMP 000007ba: JUMPDEST 000007bb: CALLVALUE 000007bc: DUP1 000007bd: ISZERO 000007be: PUSH2 0x07c6 000007c1: JUMPI 000007c2: PUSH1 0x00 000007c4: DUP1 000007c5: REVERT 000007c6: JUMPDEST 000007c7: POP 000007c8: PUSH2 0x02d7 000007cb: PUSH2 0x0109 000007ce: SLOAD 000007cf: DUP2 000007d0: JUMP 000007d1: JUMPDEST 000007d2: CALLVALUE 000007d3: DUP1 000007d4: ISZERO 000007d5: PUSH2 0x07dd 000007d8: JUMPI 000007d9: PUSH1 0x00 000007db: DUP1 000007dc: REVERT 000007dd: JUMPDEST 000007de: POP 000007df: PUSH1 0xfd 000007e1: SLOAD 000007e2: PUSH2 0x02a3 000007e5: SWAP1 000007e6: PUSH1 0x01 000007e8: PUSH1 0x01 000007ea: PUSH1 0xa0 000007ec: SHL 000007ed: SUB 000007ee: AND 000007ef: DUP2 000007f0: JUMP 000007f1: JUMPDEST 000007f2: CALLVALUE 000007f3: DUP1 000007f4: ISZERO 000007f5: PUSH2 0x07fd 000007f8: JUMPI 000007f9: PUSH1 0x00 000007fb: DUP1 000007fc: REVERT 000007fd: JUMPDEST 000007fe: POP 000007ff: PUSH2 0x02d7 00000802: PUSH1 0x0a 00000804: DUP2 00000805: JUMP 00000806: JUMPDEST 00000807: CALLVALUE 00000808: DUP1 00000809: ISZERO 0000080a: PUSH2 0x0812 0000080d: JUMPI 0000080e: PUSH1 0x00 00000810: DUP1 00000811: REVERT 00000812: JUMPDEST 00000813: POP 00000814: PUSH2 0x03ab 00000817: PUSH2 0x0821 0000081a: CALLDATASIZE 0000081b: PUSH1 0x04 0000081d: PUSH2 0x38b7 00000820: JUMP 00000821: JUMPDEST 00000822: PUSH1 0x01 00000824: PUSH1 0x01 00000826: PUSH1 0xa0 00000828: SHL 00000829: SUB 0000082a: AND 0000082b: PUSH1 0x00 0000082d: SWAP1 0000082e: DUP2 0000082f: MSTORE 00000830: PUSH2 0x0106 00000833: PUSH1 0x20 00000835: MSTORE 00000836: PUSH1 0x40 00000838: SWAP1 00000839: KECCAK256 0000083a: SLOAD 0000083b: PUSH1 0xff 0000083d: AND 0000083e: SWAP1 0000083f: JUMP 00000840: JUMPDEST 00000841: CALLVALUE 00000842: DUP1 00000843: ISZERO 00000844: PUSH2 0x084c 00000847: JUMPI 00000848: PUSH1 0x00 0000084a: DUP1 0000084b: REVERT 0000084c: JUMPDEST 0000084d: POP 0000084e: PUSH2 0x02f8 00000851: PUSH2 0x085b 00000854: CALLDATASIZE 00000855: PUSH1 0x04 00000857: PUSH2 0x38b7 0000085a: JUMP 0000085b: JUMPDEST 0000085c: PUSH2 0x2317 0000085f: JUMP 00000860: JUMPDEST 00000861: CALLVALUE 00000862: DUP1 00000863: ISZERO 00000864: PUSH2 0x086c 00000867: JUMPI 00000868: PUSH1 0x00 0000086a: DUP1 0000086b: REVERT 0000086c: JUMPDEST 0000086d: POP 0000086e: PUSH2 0x02f8 00000871: PUSH2 0x087b 00000874: CALLDATASIZE 00000875: PUSH1 0x04 00000877: PUSH2 0x38b7 0000087a: JUMP 0000087b: JUMPDEST 0000087c: PUSH2 0x2364 0000087f: JUMP 00000880: JUMPDEST 00000881: CALLVALUE 00000882: DUP1 00000883: ISZERO 00000884: PUSH2 0x088c 00000887: JUMPI 00000888: PUSH1 0x00 0000088a: DUP1 0000088b: REVERT 0000088c: JUMPDEST 0000088d: POP 0000088e: PUSH2 0x02f8 00000891: PUSH2 0x089b 00000894: CALLDATASIZE 00000895: PUSH1 0x04 00000897: PUSH2 0x3c95 0000089a: JUMP 0000089b: JUMPDEST 0000089c: PUSH2 0x23fc 0000089f: JUMP 000008a0: JUMPDEST 000008a1: PUSH1 0x02 000008a3: PUSH1 0xc9 000008a5: SLOAD 000008a6: EQ 000008a7: ISZERO 000008a8: PUSH2 0x08f8 000008ab: JUMPI 000008ac: PUSH1 0x40 000008ae: MLOAD 000008af: PUSH3 0x461bcd 000008b3: PUSH1 0xe5 000008b5: SHL 000008b6: DUP2 000008b7: MSTORE 000008b8: PUSH1 0x20 000008ba: PUSH1 0x04 000008bc: DUP3 000008bd: ADD 000008be: MSTORE 000008bf: PUSH1 0x1f 000008c1: PUSH1 0x24 000008c3: DUP3 000008c4: ADD 000008c5: MSTORE 000008c6: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 000008e7: PUSH1 0x44 000008e9: DUP3 000008ea: ADD 000008eb: MSTORE 000008ec: PUSH1 0x64 000008ee: ADD 000008ef: JUMPDEST 000008f0: PUSH1 0x40 000008f2: MLOAD 000008f3: DUP1 000008f4: SWAP2 000008f5: SUB 000008f6: SWAP1 000008f7: REVERT 000008f8: JUMPDEST 000008f9: PUSH1 0x02 000008fb: PUSH1 0xc9 000008fd: SSTORE 000008fe: PUSH1 0xfc 00000900: SLOAD 00000901: DUP2 00000902: EQ 00000903: ISZERO 00000904: PUSH2 0x0965 00000907: JUMPI 00000908: PUSH1 0x40 0000090a: MLOAD 0000090b: PUSH3 0x461bcd 0000090f: PUSH1 0xe5 00000911: SHL 00000912: DUP2 00000913: MSTORE 00000914: PUSH1 0x20 00000916: PUSH1 0x04 00000918: DUP3 00000919: ADD 0000091a: MSTORE 0000091b: PUSH1 0x2d 0000091d: PUSH1 0x24 0000091f: DUP3 00000920: ADD 00000921: MSTORE 00000922: PUSH32 0x736f7572636520616e642074617267657420636861696e20696473206d757374 00000943: PUSH1 0x44 00000945: DUP3 00000946: ADD 00000947: MSTORE 00000948: PUSH13 0x08189948191a5999995c995b9d 00000956: PUSH1 0x9a 00000958: SHL 00000959: PUSH1 0x64 0000095b: DUP3 0000095c: ADD 0000095d: MSTORE 0000095e: PUSH1 0x84 00000960: ADD 00000961: PUSH2 0x08ef 00000964: JUMP 00000965: JUMPDEST 00000966: PUSH1 0x00 00000968: DUP2 00000969: DUP2 0000096a: MSTORE 0000096b: PUSH2 0x0101 0000096e: PUSH1 0x20 00000970: MSTORE 00000971: PUSH1 0x40 00000973: SWAP1 00000974: KECCAK256 00000975: SLOAD 00000976: PUSH1 0xff 00000978: AND 00000979: PUSH2 0x09ba 0000097c: JUMPI 0000097d: PUSH1 0x40 0000097f: MLOAD 00000980: PUSH3 0x461bcd 00000984: PUSH1 0xe5 00000986: SHL 00000987: DUP2 00000988: MSTORE 00000989: PUSH1 0x20 0000098b: PUSH1 0x04 0000098d: DUP3 0000098e: ADD 0000098f: MSTORE 00000990: PUSH1 0x13 00000992: PUSH1 0x24 00000994: DUP3 00000995: ADD 00000996: MSTORE 00000997: PUSH19 0x1d5b9cdd5c1c1bdc9d19590818da185a5b9259 000009ab: PUSH1 0x6a 000009ad: SHL 000009ae: PUSH1 0x44 000009b0: DUP3 000009b1: ADD 000009b2: MSTORE 000009b3: PUSH1 0x64 000009b5: ADD 000009b6: PUSH2 0x08ef 000009b9: JUMP 000009ba: JUMPDEST 000009bb: PUSH1 0x01 000009bd: PUSH1 0x01 000009bf: PUSH1 0xa0 000009c1: SHL 000009c2: SUB 000009c3: DUP5 000009c4: AND 000009c5: PUSH1 0x00 000009c7: SWAP1 000009c8: DUP2 000009c9: MSTORE 000009ca: PUSH2 0x0106 000009cd: PUSH1 0x20 000009cf: MSTORE 000009d0: PUSH1 0x40 000009d2: SWAP1 000009d3: KECCAK256 000009d4: SLOAD 000009d5: PUSH1 0xff 000009d7: AND 000009d8: PUSH2 0x0b2b 000009db: JUMPI 000009dc: PUSH1 0x00 000009de: PUSH2 0x010c 000009e1: SLOAD 000009e2: PUSH1 0x00 000009e4: EQ 000009e5: PUSH2 0x09f1 000009e8: JUMPI 000009e9: PUSH2 0x010c 000009ec: SLOAD 000009ed: PUSH2 0x09f4 000009f0: JUMP 000009f1: JUMPDEST 000009f2: PUSH1 0x0a 000009f4: JUMPDEST 000009f5: SWAP1 000009f6: POP 000009f7: PUSH1 0x00 000009f9: PUSH2 0x2710 000009fc: PUSH2 0x0a05 000009ff: DUP4 00000a00: DUP3 00000a01: PUSH2 0x40e9 00000a04: JUMP 00000a05: JUMPDEST 00000a06: PUSH2 0x0a0f 00000a09: SWAP1 00000a0a: DUP7 00000a0b: PUSH2 0x40ca 00000a0e: JUMP 00000a0f: JUMPDEST 00000a10: PUSH2 0x0a19 00000a13: SWAP2 00000a14: SWAP1 00000a15: PUSH2 0x40aa 00000a18: JUMP 00000a19: JUMPDEST 00000a1a: SWAP1 00000a1b: POP 00000a1c: PUSH1 0x00 00000a1e: PUSH2 0x0a27 00000a21: DUP3 00000a22: DUP7 00000a23: PUSH2 0x40e9 00000a26: JUMP 00000a27: JUMPDEST 00000a28: SWAP1 00000a29: POP 00000a2a: PUSH2 0x0a34 00000a2d: DUP8 00000a2e: CALLER 00000a2f: DUP8 00000a30: PUSH2 0x2447 00000a33: JUMP 00000a34: JUMPDEST 00000a35: PUSH2 0x0a41 00000a38: DUP8 00000a39: CALLER 00000a3a: PUSH1 0x00 00000a3c: DUP5 00000a3d: PUSH2 0x2606 00000a40: JUMP 00000a41: JUMPDEST 00000a42: DUP7 00000a43: PUSH1 0x01 00000a45: PUSH1 0x01 00000a47: PUSH1 0xa0 00000a49: SHL 00000a4a: SUB 00000a4b: AND 00000a4c: PUSH32 0xc210de9a5a98ab6c6b579b8d4b8003cce89c8ec3ff669ff2481d63172e00779b 00000a6d: DUP8 00000a6e: DUP5 00000a6f: PUSH1 0xfc 00000a71: SLOAD 00000a72: PUSH1 0xfc 00000a74: SLOAD 00000a75: DUP10 00000a76: PUSH2 0x0108 00000a79: SLOAD 00000a7a: PUSH1 0x40 00000a7c: MLOAD 00000a7d: PUSH2 0x0a8b 00000a80: SWAP7 00000a81: SWAP6 00000a82: SWAP5 00000a83: SWAP4 00000a84: SWAP3 00000a85: SWAP2 00000a86: SWAP1 00000a87: PUSH2 0x3eaa 00000a8a: JUMP 00000a8b: JUMPDEST 00000a8c: PUSH1 0x40 00000a8e: MLOAD 00000a8f: DUP1 00000a90: SWAP2 00000a91: SUB 00000a92: SWAP1 00000a93: LOG2 00000a94: PUSH2 0x0108 00000a97: DUP1 00000a98: SLOAD 00000a99: SWAP1 00000a9a: PUSH1 0x00 00000a9c: PUSH2 0x0aa4 00000a9f: DUP4 00000aa0: PUSH2 0x412c 00000aa3: JUMP 00000aa4: JUMPDEST 00000aa5: SWAP1 00000aa6: SWAP2 00000aa7: SSTORE 00000aa8: POP 00000aa9: POP 00000aaa: PUSH1 0x01 00000aac: PUSH1 0x01 00000aae: PUSH1 0xa0 00000ab0: SHL 00000ab1: SUB 00000ab2: DUP8 00000ab3: AND 00000ab4: PUSH1 0x00 00000ab6: SWAP1 00000ab7: DUP2 00000ab8: MSTORE 00000ab9: PUSH2 0x0103 00000abc: PUSH1 0x20 00000abe: SWAP1 00000abf: DUP2 00000ac0: MSTORE 00000ac1: PUSH1 0x40 00000ac3: DUP1 00000ac4: DUP4 00000ac5: KECCAK256 00000ac6: DUP8 00000ac7: DUP5 00000ac8: MSTORE 00000ac9: SWAP1 00000aca: SWAP2 00000acb: MSTORE 00000acc: SWAP1 00000acd: KECCAK256 00000ace: SLOAD 00000acf: PUSH1 0xff 00000ad1: AND 00000ad2: PUSH2 0x0b23 00000ad5: JUMPI 00000ad6: PUSH1 0x01 00000ad8: PUSH1 0x01 00000ada: PUSH1 0xa0 00000adc: SHL 00000add: SUB 00000ade: DUP8 00000adf: AND 00000ae0: PUSH1 0x00 00000ae2: DUP2 00000ae3: DUP2 00000ae4: MSTORE 00000ae5: PUSH2 0x0102 00000ae8: PUSH1 0x20 00000aea: SWAP1 00000aeb: DUP2 00000aec: MSTORE 00000aed: PUSH1 0x40 00000aef: DUP1 00000af0: DUP4 00000af1: KECCAK256 00000af2: DUP1 00000af3: SLOAD 00000af4: PUSH1 0x01 00000af6: DUP2 00000af7: DUP2 00000af8: ADD 00000af9: DUP4 00000afa: SSTORE 00000afb: SWAP2 00000afc: DUP6 00000afd: MSTORE 00000afe: DUP4 00000aff: DUP6 00000b00: KECCAK256 00000b01: ADD 00000b02: DUP10 00000b03: SWAP1 00000b04: SSTORE 00000b05: SWAP4 00000b06: DUP4 00000b07: MSTORE 00000b08: PUSH2 0x0103 00000b0b: DUP3 00000b0c: MSTORE 00000b0d: DUP1 00000b0e: DUP4 00000b0f: KECCAK256 00000b10: DUP9 00000b11: DUP5 00000b12: MSTORE 00000b13: SWAP1 00000b14: SWAP2 00000b15: MSTORE 00000b16: SWAP1 00000b17: KECCAK256 00000b18: DUP1 00000b19: SLOAD 00000b1a: PUSH1 0xff 00000b1c: NOT 00000b1d: AND 00000b1e: SWAP1 00000b1f: SWAP2 00000b20: OR 00000b21: SWAP1 00000b22: SSTORE 00000b23: JUMPDEST 00000b24: POP 00000b25: POP 00000b26: POP 00000b27: PUSH2 0x0c30 00000b2a: JUMP 00000b2b: JUMPDEST 00000b2c: PUSH1 0x01 00000b2e: PUSH1 0x01 00000b30: PUSH1 0xa0 00000b32: SHL 00000b33: SUB 00000b34: DUP5 00000b35: DUP2 00000b36: AND 00000b37: PUSH1 0x00 00000b39: DUP2 00000b3a: DUP2 00000b3b: MSTORE 00000b3c: PUSH2 0x0105 00000b3f: PUSH1 0x20 00000b41: MSTORE 00000b42: PUSH1 0x40 00000b44: SWAP1 00000b45: DUP2 00000b46: SWAP1 00000b47: KECCAK256 00000b48: SLOAD 00000b49: SWAP1 00000b4a: MLOAD 00000b4b: PUSH4 0x079cc679 00000b50: PUSH1 0xe4 00000b52: SHL 00000b53: DUP2 00000b54: MSTORE 00000b55: CALLER 00000b56: PUSH1 0x04 00000b58: DUP3 00000b59: ADD 00000b5a: MSTORE 00000b5b: PUSH1 0x24 00000b5d: DUP2 00000b5e: ADD 00000b5f: DUP7 00000b60: SWAP1 00000b61: MSTORE 00000b62: SWAP3 00000b63: AND 00000b64: SWAP2 00000b65: PUSH4 0x79cc6790 00000b6a: SWAP1 00000b6b: PUSH1 0x44 00000b6d: ADD 00000b6e: PUSH1 0x00 00000b70: PUSH1 0x40 00000b72: MLOAD 00000b73: DUP1 00000b74: DUP4 00000b75: SUB 00000b76: DUP2 00000b77: PUSH1 0x00 00000b79: DUP8 00000b7a: DUP1 00000b7b: EXTCODESIZE 00000b7c: ISZERO 00000b7d: DUP1 00000b7e: ISZERO 00000b7f: PUSH2 0x0b87 00000b82: JUMPI 00000b83: PUSH1 0x00 00000b85: DUP1 00000b86: REVERT 00000b87: JUMPDEST 00000b88: POP 00000b89: GAS 00000b8a: CALL 00000b8b: ISZERO 00000b8c: DUP1 00000b8d: ISZERO 00000b8e: PUSH2 0x0b9b 00000b91: JUMPI 00000b92: RETURNDATASIZE 00000b93: PUSH1 0x00 00000b95: DUP1 00000b96: RETURNDATACOPY 00000b97: RETURNDATASIZE 00000b98: PUSH1 0x00 00000b9a: REVERT 00000b9b: JUMPDEST 00000b9c: POP 00000b9d: POP 00000b9e: POP 00000b9f: POP 00000ba0: DUP1 00000ba1: PUSH1 0x01 00000ba3: PUSH1 0x01 00000ba5: PUSH1 0xa0 00000ba7: SHL 00000ba8: SUB 00000ba9: AND 00000baa: PUSH32 0xc210de9a5a98ab6c6b579b8d4b8003cce89c8ec3ff669ff2481d63172e00779b 00000bcb: DUP6 00000bcc: DUP6 00000bcd: PUSH2 0x0105 00000bd0: PUSH1 0x00 00000bd2: DUP11 00000bd3: PUSH1 0x01 00000bd5: PUSH1 0x01 00000bd7: PUSH1 0xa0 00000bd9: SHL 00000bda: SUB 00000bdb: AND 00000bdc: PUSH1 0x01 00000bde: PUSH1 0x01 00000be0: PUSH1 0xa0 00000be2: SHL 00000be3: SUB 00000be4: AND 00000be5: DUP2 00000be6: MSTORE 00000be7: PUSH1 0x20 00000be9: ADD 00000bea: SWAP1 00000beb: DUP2 00000bec: MSTORE 00000bed: PUSH1 0x20 00000bef: ADD 00000bf0: PUSH1 0x00 00000bf2: KECCAK256 00000bf3: PUSH1 0x01 00000bf5: ADD 00000bf6: SLOAD 00000bf7: PUSH1 0xfc 00000bf9: SLOAD 00000bfa: DUP8 00000bfb: PUSH2 0x0108 00000bfe: SLOAD 00000bff: PUSH1 0x40 00000c01: MLOAD 00000c02: PUSH2 0x0c10 00000c05: SWAP7 00000c06: SWAP6 00000c07: SWAP5 00000c08: SWAP4 00000c09: SWAP3 00000c0a: SWAP2 00000c0b: SWAP1 00000c0c: PUSH2 0x3eaa 00000c0f: JUMP 00000c10: JUMPDEST 00000c11: PUSH1 0x40 00000c13: MLOAD 00000c14: DUP1 00000c15: SWAP2 00000c16: SUB 00000c17: SWAP1 00000c18: LOG2 00000c19: PUSH2 0x0108 00000c1c: DUP1 00000c1d: SLOAD 00000c1e: SWAP1 00000c1f: PUSH1 0x00 00000c21: PUSH2 0x0c29 00000c24: DUP4 00000c25: PUSH2 0x412c 00000c28: JUMP 00000c29: JUMPDEST 00000c2a: SWAP2 00000c2b: SWAP1 00000c2c: POP 00000c2d: SSTORE 00000c2e: POP 00000c2f: POP 00000c30: JUMPDEST 00000c31: POP 00000c32: POP 00000c33: PUSH1 0x01 00000c35: PUSH1 0xc9 00000c37: SSTORE 00000c38: POP 00000c39: POP 00000c3a: JUMP 00000c3b: JUMPDEST 00000c3c: PUSH1 0x97 00000c3e: SLOAD 00000c3f: PUSH1 0x01 00000c41: PUSH1 0x01 00000c43: PUSH1 0xa0 00000c45: SHL 00000c46: SUB 00000c47: AND 00000c48: CALLER 00000c49: EQ 00000c4a: PUSH2 0x0c65 00000c4d: JUMPI 00000c4e: PUSH1 0x40 00000c50: MLOAD 00000c51: PUSH3 0x461bcd 00000c55: PUSH1 0xe5 00000c57: SHL 00000c58: DUP2 00000c59: MSTORE 00000c5a: PUSH1 0x04 00000c5c: ADD 00000c5d: PUSH2 0x08ef 00000c60: SWAP1 00000c61: PUSH2 0x3f91 00000c64: JUMP 00000c65: JUMPDEST 00000c66: PUSH2 0x0107 00000c69: SSTORE 00000c6a: JUMP 00000c6b: JUMPDEST 00000c6c: ADDRESS 00000c6d: PUSH1 0x01 00000c6f: PUSH1 0x01 00000c71: PUSH1 0xa0 00000c73: SHL 00000c74: SUB 00000c75: PUSH32 0x000000000000000000000000438285fbccba55ce8cdef276030e6b35a0b65b6b 00000c96: AND 00000c97: EQ 00000c98: ISZERO 00000c99: PUSH2 0x0cb4 00000c9c: JUMPI 00000c9d: PUSH1 0x40 00000c9f: MLOAD 00000ca0: PUSH3 0x461bcd 00000ca4: PUSH1 0xe5 00000ca6: SHL 00000ca7: DUP2 00000ca8: MSTORE 00000ca9: PUSH1 0x04 00000cab: ADD 00000cac: PUSH2 0x08ef 00000caf: SWAP1 00000cb0: PUSH2 0x3ef9 00000cb3: JUMP 00000cb4: JUMPDEST 00000cb5: PUSH32 0x000000000000000000000000438285fbccba55ce8cdef276030e6b35a0b65b6b 00000cd6: PUSH1 0x01 00000cd8: PUSH1 0x01 00000cda: PUSH1 0xa0 00000cdc: SHL 00000cdd: SUB 00000cde: AND 00000cdf: PUSH2 0x0ce6 00000ce2: PUSH2 0x27d9 00000ce5: JUMP 00000ce6: JUMPDEST 00000ce7: PUSH1 0x01 00000ce9: PUSH1 0x01 00000ceb: PUSH1 0xa0 00000ced: SHL 00000cee: SUB 00000cef: AND 00000cf0: EQ 00000cf1: PUSH2 0x0d0c 00000cf4: JUMPI 00000cf5: PUSH1 0x40 00000cf7: MLOAD 00000cf8: PUSH3 0x461bcd 00000cfc: PUSH1 0xe5 00000cfe: SHL 00000cff: DUP2 00000d00: MSTORE 00000d01: PUSH1 0x04 00000d03: ADD 00000d04: PUSH2 0x08ef 00000d07: SWAP1 00000d08: PUSH2 0x3f45 00000d0b: JUMP 00000d0c: JUMPDEST 00000d0d: PUSH2 0x0d15 00000d10: DUP2 00000d11: PUSH2 0x2807 00000d14: JUMP 00000d15: JUMPDEST 00000d16: PUSH1 0x40 00000d18: DUP1 00000d19: MLOAD 00000d1a: PUSH1 0x00 00000d1c: DUP1 00000d1d: DUP3 00000d1e: MSTORE 00000d1f: PUSH1 0x20 00000d21: DUP3 00000d22: ADD 00000d23: SWAP1 00000d24: SWAP3 00000d25: MSTORE 00000d26: PUSH2 0x0d31 00000d29: SWAP2 00000d2a: DUP4 00000d2b: SWAP2 00000d2c: SWAP1 00000d2d: PUSH2 0x2831 00000d30: JUMP 00000d31: JUMPDEST 00000d32: POP 00000d33: JUMP 00000d34: JUMPDEST 00000d35: PUSH2 0x0102 00000d38: PUSH1 0x20 00000d3a: MSTORE 00000d3b: DUP2 00000d3c: PUSH1 0x00 00000d3e: MSTORE 00000d3f: PUSH1 0x40 00000d41: PUSH1 0x00 00000d43: KECCAK256 00000d44: DUP2 00000d45: DUP2 00000d46: SLOAD 00000d47: DUP2 00000d48: LT 00000d49: PUSH2 0x0d51 00000d4c: JUMPI 00000d4d: PUSH1 0x00 00000d4f: DUP1 00000d50: REVERT 00000d51: JUMPDEST 00000d52: SWAP1 00000d53: PUSH1 0x00 00000d55: MSTORE 00000d56: PUSH1 0x20 00000d58: PUSH1 0x00 00000d5a: KECCAK256 00000d5b: ADD 00000d5c: PUSH1 0x00 00000d5e: SWAP2 00000d5f: POP 00000d60: SWAP2 00000d61: POP 00000d62: POP 00000d63: SLOAD 00000d64: DUP2 00000d65: JUMP 00000d66: JUMPDEST 00000d67: PUSH1 0xff 00000d69: DUP2 00000d6a: DUP2 00000d6b: SLOAD 00000d6c: DUP2 00000d6d: LT 00000d6e: PUSH2 0x0d76 00000d71: JUMPI 00000d72: PUSH1 0x00 00000d74: DUP1 00000d75: REVERT 00000d76: JUMPDEST 00000d77: PUSH1 0x00 00000d79: SWAP2 00000d7a: DUP3 00000d7b: MSTORE 00000d7c: PUSH1 0x20 00000d7e: SWAP1 00000d7f: SWAP2 00000d80: KECCAK256 00000d81: ADD 00000d82: SLOAD 00000d83: PUSH1 0x01 00000d85: PUSH1 0x01 00000d87: PUSH1 0xa0 00000d89: SHL 00000d8a: SUB 00000d8b: AND 00000d8c: SWAP1 00000d8d: POP 00000d8e: DUP2 00000d8f: JUMP 00000d90: JUMPDEST 00000d91: ADDRESS 00000d92: PUSH1 0x01 00000d94: PUSH1 0x01 00000d96: PUSH1 0xa0 00000d98: SHL 00000d99: SUB 00000d9a: PUSH32 0x000000000000000000000000438285fbccba55ce8cdef276030e6b35a0b65b6b 00000dbb: AND 00000dbc: EQ 00000dbd: ISZERO 00000dbe: PUSH2 0x0dd9 00000dc1: JUMPI 00000dc2: PUSH1 0x40 00000dc4: MLOAD 00000dc5: PUSH3 0x461bcd 00000dc9: PUSH1 0xe5 00000dcb: SHL 00000dcc: DUP2 00000dcd: MSTORE 00000dce: PUSH1 0x04 00000dd0: ADD 00000dd1: PUSH2 0x08ef 00000dd4: SWAP1 00000dd5: PUSH2 0x3ef9 00000dd8: JUMP 00000dd9: JUMPDEST 00000dda: PUSH32 0x000000000000000000000000438285fbccba55ce8cdef276030e6b35a0b65b6b 00000dfb: PUSH1 0x01 00000dfd: PUSH1 0x01 00000dff: PUSH1 0xa0 00000e01: SHL 00000e02: SUB 00000e03: AND 00000e04: PUSH2 0x0e0b 00000e07: PUSH2 0x27d9 00000e0a: JUMP 00000e0b: JUMPDEST 00000e0c: PUSH1 0x01 00000e0e: PUSH1 0x01 00000e10: PUSH1 0xa0 00000e12: SHL 00000e13: SUB 00000e14: AND 00000e15: EQ 00000e16: PUSH2 0x0e31 00000e19: JUMPI 00000e1a: PUSH1 0x40 00000e1c: MLOAD 00000e1d: PUSH3 0x461bcd 00000e21: PUSH1 0xe5 00000e23: SHL 00000e24: DUP2 00000e25: MSTORE 00000e26: PUSH1 0x04 00000e28: ADD 00000e29: PUSH2 0x08ef 00000e2c: SWAP1 00000e2d: PUSH2 0x3f45 00000e30: JUMP 00000e31: JUMPDEST 00000e32: PUSH2 0x0e3a 00000e35: DUP3 00000e36: PUSH2 0x2807 00000e39: JUMP 00000e3a: JUMPDEST 00000e3b: PUSH2 0x0e46 00000e3e: DUP3 00000e3f: DUP3 00000e40: PUSH1 0x01 00000e42: PUSH2 0x2831 00000e45: JUMP 00000e46: JUMPDEST 00000e47: POP 00000e48: POP 00000e49: JUMP 00000e4a: JUMPDEST 00000e4b: PUSH1 0x97 00000e4d: SLOAD 00000e4e: PUSH1 0x01 00000e50: PUSH1 0x01 00000e52: PUSH1 0xa0 00000e54: SHL 00000e55: SUB 00000e56: AND 00000e57: CALLER 00000e58: EQ 00000e59: PUSH2 0x0e74 00000e5c: JUMPI 00000e5d: PUSH1 0x40 00000e5f: MLOAD 00000e60: PUSH3 0x461bcd 00000e64: PUSH1 0xe5 00000e66: SHL 00000e67: DUP2 00000e68: MSTORE 00000e69: PUSH1 0x04 00000e6b: ADD 00000e6c: PUSH2 0x08ef 00000e6f: SWAP1 00000e70: PUSH2 0x3f91 00000e73: JUMP 00000e74: JUMPDEST 00000e75: DUP2 00000e76: MLOAD 00000e77: DUP4 00000e78: MLOAD 00000e79: EQ 00000e7a: DUP1 00000e7b: ISZERO 00000e7c: PUSH2 0x0e86 00000e7f: JUMPI 00000e80: POP 00000e81: DUP1 00000e82: MLOAD 00000e83: DUP3 00000e84: MLOAD 00000e85: EQ 00000e86: JUMPDEST 00000e87: PUSH2 0x0ebb 00000e8a: JUMPI 00000e8b: PUSH1 0x40 00000e8d: MLOAD 00000e8e: PUSH3 0x461bcd 00000e92: PUSH1 0xe5 00000e94: SHL 00000e95: DUP2 00000e96: MSTORE 00000e97: PUSH1 0x20 00000e99: PUSH1 0x04 00000e9b: DUP3 00000e9c: ADD 00000e9d: MSTORE 00000e9e: PUSH1 0x06 00000ea0: PUSH1 0x24 00000ea2: DUP3 00000ea3: ADD 00000ea4: MSTORE 00000ea5: PUSH6 0x085a5b9c1d5d 00000eac: PUSH1 0xd2 00000eae: SHL 00000eaf: PUSH1 0x44 00000eb1: DUP3 00000eb2: ADD 00000eb3: MSTORE 00000eb4: PUSH1 0x64 00000eb6: ADD 00000eb7: PUSH2 0x08ef 00000eba: JUMP 00000ebb: JUMPDEST 00000ebc: PUSH1 0x00 00000ebe: JUMPDEST 00000ebf: DUP3 00000ec0: MLOAD 00000ec1: DUP2 00000ec2: LT 00000ec3: ISZERO 00000ec4: PUSH2 0x105b 00000ec7: JUMPI 00000ec8: DUP2 00000ec9: DUP2 00000eca: DUP2 00000ecb: MLOAD 00000ecc: DUP2 00000ecd: LT 00000ece: PUSH2 0x0ee7 00000ed1: JUMPI 00000ed2: PUSH4 0x4e487b71 00000ed7: PUSH1 0xe0 00000ed9: SHL 00000eda: PUSH1 0x00 00000edc: MSTORE 00000edd: PUSH1 0x32 00000edf: PUSH1 0x04 00000ee1: MSTORE 00000ee2: PUSH1 0x24 00000ee4: PUSH1 0x00 00000ee6: REVERT 00000ee7: JUMPDEST 00000ee8: PUSH1 0x20 00000eea: MUL 00000eeb: PUSH1 0x20 00000eed: ADD 00000eee: ADD 00000eef: MLOAD 00000ef0: PUSH2 0x010b 00000ef3: PUSH1 0x00 00000ef5: DUP7 00000ef6: DUP5 00000ef7: DUP2 00000ef8: MLOAD 00000ef9: DUP2 00000efa: LT 00000efb: PUSH2 0x0f14 00000efe: JUMPI 00000eff: PUSH4 0x4e487b71 00000f04: PUSH1 0xe0 00000f06: SHL 00000f07: PUSH1 0x00 00000f09: MSTORE 00000f0a: PUSH1 0x32 00000f0c: PUSH1 0x04 00000f0e: MSTORE 00000f0f: PUSH1 0x24 00000f11: PUSH1 0x00 00000f13: REVERT 00000f14: JUMPDEST 00000f15: PUSH1 0x20 00000f17: MUL 00000f18: PUSH1 0x20 00000f1a: ADD 00000f1b: ADD 00000f1c: MLOAD 00000f1d: DUP2 00000f1e: MSTORE 00000f1f: PUSH1 0x20 00000f21: ADD 00000f22: SWAP1 00000f23: DUP2 00000f24: MSTORE 00000f25: PUSH1 0x20 00000f27: ADD 00000f28: PUSH1 0x00 00000f2a: KECCAK256 00000f2b: PUSH1 0x00 00000f2d: DUP6 00000f2e: DUP5 00000f2f: DUP2 00000f30: MLOAD 00000f31: DUP2 00000f32: LT 00000f33: PUSH2 0x0f4c 00000f36: JUMPI 00000f37: PUSH4 0x4e487b71 00000f3c: PUSH1 0xe0 00000f3e: SHL 00000f3f: PUSH1 0x00 00000f41: MSTORE 00000f42: PUSH1 0x32 00000f44: PUSH1 0x04 00000f46: MSTORE 00000f47: PUSH1 0x24 00000f49: PUSH1 0x00 00000f4b: REVERT 00000f4c: JUMPDEST 00000f4d: PUSH1 0x20 00000f4f: MUL 00000f50: PUSH1 0x20 00000f52: ADD 00000f53: ADD 00000f54: MLOAD 00000f55: PUSH1 0x01 00000f57: PUSH1 0x01 00000f59: PUSH1 0xa0 00000f5b: SHL 00000f5c: SUB 00000f5d: AND 00000f5e: PUSH1 0x01 00000f60: PUSH1 0x01 00000f62: PUSH1 0xa0 00000f64: SHL 00000f65: SUB 00000f66: AND 00000f67: DUP2 00000f68: MSTORE 00000f69: PUSH1 0x20 00000f6b: ADD 00000f6c: SWAP1 00000f6d: DUP2 00000f6e: MSTORE 00000f6f: PUSH1 0x20 00000f71: ADD 00000f72: PUSH1 0x00 00000f74: KECCAK256 00000f75: DUP2 00000f76: SWAP1 00000f77: SSTORE 00000f78: POP 00000f79: PUSH32 0xdf597e00478ce70575315b7d3a631155dd44024ed3cb828ecac3cb83c28ffe04 00000f9a: DUP5 00000f9b: DUP3 00000f9c: DUP2 00000f9d: MLOAD 00000f9e: DUP2 00000f9f: LT 00000fa0: PUSH2 0x0fb9 00000fa3: JUMPI 00000fa4: PUSH4 0x4e487b71 00000fa9: PUSH1 0xe0 00000fab: SHL 00000fac: PUSH1 0x00 00000fae: MSTORE 00000faf: PUSH1 0x32 00000fb1: PUSH1 0x04 00000fb3: MSTORE 00000fb4: PUSH1 0x24 00000fb6: PUSH1 0x00 00000fb8: REVERT 00000fb9: JUMPDEST 00000fba: PUSH1 0x20 00000fbc: MUL 00000fbd: PUSH1 0x20 00000fbf: ADD 00000fc0: ADD 00000fc1: MLOAD 00000fc2: DUP5 00000fc3: DUP4 00000fc4: DUP2 00000fc5: MLOAD 00000fc6: DUP2 00000fc7: LT 00000fc8: PUSH2 0x0fe1 00000fcb: JUMPI 00000fcc: PUSH4 0x4e487b71 00000fd1: PUSH1 0xe0 00000fd3: SHL 00000fd4: PUSH1 0x00 00000fd6: MSTORE 00000fd7: PUSH1 0x32 00000fd9: PUSH1 0x04 00000fdb: MSTORE 00000fdc: PUSH1 0x24 00000fde: PUSH1 0x00 00000fe0: REVERT 00000fe1: JUMPDEST 00000fe2: PUSH1 0x20 00000fe4: MUL 00000fe5: PUSH1 0x20 00000fe7: ADD 00000fe8: ADD 00000fe9: MLOAD 00000fea: DUP5 00000feb: DUP5 00000fec: DUP2 00000fed: MLOAD 00000fee: DUP2 00000fef: LT 00000ff0: PUSH2 0x1009 00000ff3: JUMPI 00000ff4: PUSH4 0x4e487b71 00000ff9: PUSH1 0xe0 00000ffb: SHL 00000ffc: PUSH1 0x00 00000ffe: MSTORE 00000fff: PUSH1 0x32 00001001: PUSH1 0x04 00001003: MSTORE 00001004: PUSH1 0x24 00001006: PUSH1 0x00 00001008: REVERT 00001009: JUMPDEST 0000100a: PUSH1 0x20 0000100c: MUL 0000100d: PUSH1 0x20 0000100f: ADD 00001010: ADD 00001011: MLOAD 00001012: TIMESTAMP 00001013: PUSH1 0x40 00001015: MLOAD 00001016: PUSH2 0x1041 00001019: SWAP5 0000101a: SWAP4 0000101b: SWAP3 0000101c: SWAP2 0000101d: SWAP1 0000101e: SWAP4 0000101f: DUP5 00001020: MSTORE 00001021: PUSH1 0x01 00001023: PUSH1 0x01 00001025: PUSH1 0xa0 00001027: SHL 00001028: SUB 00001029: SWAP3 0000102a: SWAP1 0000102b: SWAP3 0000102c: AND 0000102d: PUSH1 0x20 0000102f: DUP5 00001030: ADD 00001031: MSTORE 00001032: PUSH1 0x40 00001034: DUP4 00001035: ADD 00001036: MSTORE 00001037: PUSH1 0x60 00001039: DUP3 0000103a: ADD 0000103b: MSTORE 0000103c: PUSH1 0x80 0000103e: ADD 0000103f: SWAP1 00001040: JUMP 00001041: JUMPDEST 00001042: PUSH1 0x40 00001044: MLOAD 00001045: DUP1 00001046: SWAP2 00001047: SUB 00001048: SWAP1 00001049: LOG1 0000104a: DUP1 0000104b: PUSH2 0x1053 0000104e: DUP2 0000104f: PUSH2 0x412c 00001052: JUMP 00001053: JUMPDEST 00001054: SWAP2 00001055: POP 00001056: POP 00001057: PUSH2 0x0ebe 0000105a: JUMP 0000105b: JUMPDEST 0000105c: POP 0000105d: POP 0000105e: POP 0000105f: POP 00001060: JUMP 00001061: JUMPDEST 00001062: PUSH1 0x97 00001064: SLOAD 00001065: PUSH1 0x01 00001067: PUSH1 0x01 00001069: PUSH1 0xa0 0000106b: SHL 0000106c: SUB 0000106d: AND 0000106e: CALLER 0000106f: EQ 00001070: PUSH2 0x108b 00001073: JUMPI 00001074: PUSH1 0x40 00001076: MLOAD 00001077: PUSH3 0x461bcd 0000107b: PUSH1 0xe5 0000107d: SHL 0000107e: DUP2 0000107f: MSTORE 00001080: PUSH1 0x04 00001082: ADD 00001083: PUSH2 0x08ef 00001086: SWAP1 00001087: PUSH2 0x3f91 0000108a: JUMP 0000108b: JUMPDEST 0000108c: PUSH1 0x00 0000108e: JUMPDEST 0000108f: DUP3 00001090: MLOAD 00001091: DUP2 00001092: LT 00001093: ISZERO 00001094: PUSH2 0x10fd 00001097: JUMPI 00001098: DUP2 00001099: PUSH2 0x0101 0000109c: PUSH1 0x00 0000109e: DUP6 0000109f: DUP5 000010a0: DUP2 000010a1: MLOAD 000010a2: DUP2 000010a3: LT 000010a4: PUSH2 0x10bd 000010a7: JUMPI 000010a8: PUSH4 0x4e487b71 000010ad: PUSH1 0xe0 000010af: SHL 000010b0: PUSH1 0x00 000010b2: MSTORE 000010b3: PUSH1 0x32 000010b5: PUSH1 0x04 000010b7: MSTORE 000010b8: PUSH1 0x24 000010ba: PUSH1 0x00 000010bc: REVERT 000010bd: JUMPDEST 000010be: PUSH1 0x20 000010c0: MUL 000010c1: PUSH1 0x20 000010c3: ADD 000010c4: ADD 000010c5: MLOAD 000010c6: DUP2 000010c7: MSTORE 000010c8: PUSH1 0x20 000010ca: ADD 000010cb: SWAP1 000010cc: DUP2 000010cd: MSTORE 000010ce: PUSH1 0x20 000010d0: ADD 000010d1: PUSH1 0x00 000010d3: KECCAK256 000010d4: PUSH1 0x00 000010d6: PUSH2 0x0100 000010d9: EXP 000010da: DUP2 000010db: SLOAD 000010dc: DUP2 000010dd: PUSH1 0xff 000010df: MUL 000010e0: NOT 000010e1: AND 000010e2: SWAP1 000010e3: DUP4 000010e4: ISZERO 000010e5: ISZERO 000010e6: MUL 000010e7: OR 000010e8: SWAP1 000010e9: SSTORE 000010ea: POP 000010eb: DUP1 000010ec: DUP1 000010ed: PUSH2 0x10f5 000010f0: SWAP1 000010f1: PUSH2 0x412c 000010f4: JUMP 000010f5: JUMPDEST 000010f6: SWAP2 000010f7: POP 000010f8: POP 000010f9: PUSH2 0x108e 000010fc: JUMP 000010fd: JUMPDEST 000010fe: POP 000010ff: POP 00001100: POP 00001101: JUMP 00001102: JUMPDEST 00001103: PUSH1 0x97 00001105: SLOAD 00001106: PUSH1 0x01 00001108: PUSH1 0x01 0000110a: PUSH1 0xa0 0000110c: SHL 0000110d: SUB 0000110e: AND 0000110f: CALLER 00001110: EQ 00001111: PUSH2 0x112c 00001114: JUMPI 00001115: PUSH1 0x40 00001117: MLOAD 00001118: PUSH3 0x461bcd 0000111c: PUSH1 0xe5 0000111e: SHL 0000111f: DUP2 00001120: MSTORE 00001121: PUSH1 0x04 00001123: ADD 00001124: PUSH2 0x08ef 00001127: SWAP1 00001128: PUSH2 0x3f91 0000112b: JUMP 0000112c: JUMPDEST 0000112d: PUSH1 0x00 0000112f: JUMPDEST 00001130: DUP2 00001131: MLOAD 00001132: DUP2 00001133: LT 00001134: ISZERO 00001135: PUSH2 0x0e46 00001138: JUMPI 00001139: PUSH2 0x0100 0000113c: PUSH1 0x00 0000113e: DUP4 0000113f: DUP4 00001140: DUP2 00001141: MLOAD 00001142: DUP2 00001143: LT 00001144: PUSH2 0x115d 00001147: JUMPI 00001148: PUSH4 0x4e487b71 0000114d: PUSH1 0xe0 0000114f: SHL 00001150: PUSH1 0x00 00001152: MSTORE 00001153: PUSH1 0x32 00001155: PUSH1 0x04 00001157: MSTORE 00001158: PUSH1 0x24 0000115a: PUSH1 0x00 0000115c: REVERT 0000115d: JUMPDEST 0000115e: PUSH1 0x20 00001160: SWAP1 00001161: DUP2 00001162: MUL 00001163: SWAP2 00001164: SWAP1 00001165: SWAP2 00001166: ADD 00001167: DUP2 00001168: ADD 00001169: MLOAD 0000116a: PUSH1 0x01 0000116c: PUSH1 0x01 0000116e: PUSH1 0xa0 00001170: SHL 00001171: SUB 00001172: AND 00001173: DUP3 00001174: MSTORE 00001175: DUP2 00001176: ADD 00001177: SWAP2 00001178: SWAP1 00001179: SWAP2 0000117a: MSTORE 0000117b: PUSH1 0x40 0000117d: ADD 0000117e: PUSH1 0x00 00001180: KECCAK256 00001181: SLOAD 00001182: PUSH1 0xff 00001184: AND 00001185: PUSH2 0x124d 00001188: JUMPI 00001189: PUSH1 0xff 0000118b: DUP3 0000118c: DUP3 0000118d: DUP2 0000118e: MLOAD 0000118f: DUP2 00001190: LT 00001191: PUSH2 0x11aa 00001194: JUMPI 00001195: PUSH4 0x4e487b71 0000119a: PUSH1 0xe0 0000119c: SHL 0000119d: PUSH1 0x00 0000119f: MSTORE 000011a0: PUSH1 0x32 000011a2: PUSH1 0x04 000011a4: MSTORE 000011a5: PUSH1 0x24 000011a7: PUSH1 0x00 000011a9: REVERT 000011aa: JUMPDEST 000011ab: PUSH1 0x20 000011ad: SWAP1 000011ae: DUP2 000011af: MUL 000011b0: SWAP2 000011b1: SWAP1 000011b2: SWAP2 000011b3: ADD 000011b4: DUP2 000011b5: ADD 000011b6: MLOAD 000011b7: DUP3 000011b8: SLOAD 000011b9: PUSH1 0x01 000011bb: DUP1 000011bc: DUP3 000011bd: ADD 000011be: DUP6 000011bf: SSTORE 000011c0: PUSH1 0x00 000011c2: SWAP5 000011c3: DUP6 000011c4: MSTORE 000011c5: SWAP3 000011c6: DUP5 000011c7: KECCAK256 000011c8: ADD 000011c9: DUP1 000011ca: SLOAD 000011cb: PUSH1 0x01 000011cd: PUSH1 0x01 000011cf: PUSH1 0xa0 000011d1: SHL 000011d2: SUB 000011d3: NOT 000011d4: AND 000011d5: PUSH1 0x01 000011d7: PUSH1 0x01 000011d9: PUSH1 0xa0 000011db: SHL 000011dc: SUB 000011dd: SWAP1 000011de: SWAP3 000011df: AND 000011e0: SWAP2 000011e1: SWAP1 000011e2: SWAP2 000011e3: OR 000011e4: SWAP1 000011e5: SSTORE 000011e6: DUP4 000011e7: MLOAD 000011e8: SWAP1 000011e9: SWAP2 000011ea: PUSH2 0x0100 000011ed: SWAP2 000011ee: DUP6 000011ef: SWAP1 000011f0: DUP6 000011f1: SWAP1 000011f2: DUP2 000011f3: LT 000011f4: PUSH2 0x120d 000011f7: JUMPI 000011f8: PUSH4 0x4e487b71 000011fd: PUSH1 0xe0 000011ff: SHL 00001200: PUSH1 0x00 00001202: MSTORE 00001203: PUSH1 0x32 00001205: PUSH1 0x04 00001207: MSTORE 00001208: PUSH1 0x24 0000120a: PUSH1 0x00 0000120c: REVERT 0000120d: JUMPDEST 0000120e: PUSH1 0x20 00001210: MUL 00001211: PUSH1 0x20 00001213: ADD 00001214: ADD 00001215: MLOAD 00001216: PUSH1 0x01 00001218: PUSH1 0x01 0000121a: PUSH1 0xa0 0000121c: SHL 0000121d: SUB 0000121e: AND 0000121f: PUSH1 0x01 00001221: PUSH1 0x01 00001223: PUSH1 0xa0 00001225: SHL 00001226: SUB 00001227: AND 00001228: DUP2 00001229: MSTORE 0000122a: PUSH1 0x20 0000122c: ADD 0000122d: SWAP1 0000122e: DUP2 0000122f: MSTORE 00001230: PUSH1 0x20 00001232: ADD 00001233: PUSH1 0x00 00001235: KECCAK256 00001236: PUSH1 0x00 00001238: PUSH2 0x0100 0000123b: EXP 0000123c: DUP2 0000123d: SLOAD 0000123e: DUP2 0000123f: PUSH1 0xff 00001241: MUL 00001242: NOT 00001243: AND 00001244: SWAP1 00001245: DUP4 00001246: ISZERO 00001247: ISZERO 00001248: MUL 00001249: OR 0000124a: SWAP1 0000124b: SSTORE 0000124c: POP 0000124d: JUMPDEST 0000124e: DUP1 0000124f: PUSH2 0x1257 00001252: DUP2 00001253: PUSH2 0x412c 00001256: JUMP 00001257: JUMPDEST 00001258: SWAP2 00001259: POP 0000125a: POP 0000125b: PUSH2 0x112f 0000125e: JUMP 0000125f: JUMPDEST 00001260: PUSH1 0x97 00001262: SLOAD 00001263: PUSH1 0x01 00001265: PUSH1 0x01 00001267: PUSH1 0xa0 00001269: SHL 0000126a: SUB 0000126b: AND 0000126c: CALLER 0000126d: EQ 0000126e: PUSH2 0x1289 00001271: JUMPI 00001272: PUSH1 0x40 00001274: MLOAD 00001275: PUSH3 0x461bcd 00001279: PUSH1 0xe5 0000127b: SHL 0000127c: DUP2 0000127d: MSTORE 0000127e: PUSH1 0x04 00001280: ADD 00001281: PUSH2 0x08ef 00001284: SWAP1 00001285: PUSH2 0x3f91 00001288: JUMP 00001289: JUMPDEST 0000128a: PUSH1 0x01 0000128c: PUSH1 0x01 0000128e: PUSH1 0xa0 00001290: SHL 00001291: SUB 00001292: DUP2 00001293: AND 00001294: PUSH1 0x00 00001296: SWAP1 00001297: DUP2 00001298: MSTORE 00001299: PUSH2 0x0100 0000129c: PUSH1 0x20 0000129e: MSTORE 0000129f: PUSH1 0x40 000012a1: SWAP1 000012a2: KECCAK256 000012a3: SLOAD 000012a4: PUSH1 0xff 000012a6: AND 000012a7: PUSH2 0x12e1 000012aa: JUMPI 000012ab: PUSH1 0x40 000012ad: MLOAD 000012ae: PUSH3 0x461bcd 000012b2: PUSH1 0xe5 000012b4: SHL 000012b5: DUP2 000012b6: MSTORE 000012b7: PUSH1 0x20 000012b9: PUSH1 0x04 000012bb: DUP3 000012bc: ADD 000012bd: MSTORE 000012be: PUSH1 0x0c 000012c0: PUSH1 0x24 000012c2: DUP3 000012c3: ADD 000012c4: MSTORE 000012c5: PUSH12 0x3737ba1030b8383937bb32b9 000012d2: PUSH1 0xa1 000012d4: SHL 000012d5: PUSH1 0x44 000012d7: DUP3 000012d8: ADD 000012d9: MSTORE 000012da: PUSH1 0x64 000012dc: ADD 000012dd: PUSH2 0x08ef 000012e0: JUMP 000012e1: JUMPDEST 000012e2: PUSH1 0x00 000012e4: JUMPDEST 000012e5: PUSH1 0xff 000012e7: SLOAD 000012e8: DUP2 000012e9: LT 000012ea: ISZERO 000012eb: PUSH2 0x0e46 000012ee: JUMPI 000012ef: DUP2 000012f0: PUSH1 0x01 000012f2: PUSH1 0x01 000012f4: PUSH1 0xa0 000012f6: SHL 000012f7: SUB 000012f8: AND 000012f9: PUSH1 0xff 000012fb: DUP3 000012fc: DUP2 000012fd: SLOAD 000012fe: DUP2 000012ff: LT 00001300: PUSH2 0x1319 00001303: JUMPI 00001304: PUSH4 0x4e487b71 00001309: PUSH1 0xe0 0000130b: SHL 0000130c: PUSH1 0x00 0000130e: MSTORE 0000130f: PUSH1 0x32 00001311: PUSH1 0x04 00001313: MSTORE 00001314: PUSH1 0x24 00001316: PUSH1 0x00 00001318: REVERT 00001319: JUMPDEST 0000131a: PUSH1 0x00 0000131c: SWAP2 0000131d: DUP3 0000131e: MSTORE 0000131f: PUSH1 0x20 00001321: SWAP1 00001322: SWAP2 00001323: KECCAK256 00001324: ADD 00001325: SLOAD 00001326: PUSH1 0x01 00001328: PUSH1 0x01 0000132a: PUSH1 0xa0 0000132c: SHL 0000132d: SUB 0000132e: AND 0000132f: EQ 00001330: ISZERO 00001331: PUSH2 0x1432 00001334: JUMPI 00001335: PUSH1 0xff 00001337: DUP1 00001338: SLOAD 00001339: PUSH2 0x1344 0000133c: SWAP1 0000133d: PUSH1 0x01 0000133f: SWAP1 00001340: PUSH2 0x40e9 00001343: JUMP 00001344: JUMPDEST 00001345: DUP2 00001346: SLOAD 00001347: DUP2 00001348: LT 00001349: PUSH2 0x1362 0000134c: JUMPI 0000134d: PUSH4 0x4e487b71 00001352: PUSH1 0xe0 00001354: SHL 00001355: PUSH1 0x00 00001357: MSTORE 00001358: PUSH1 0x32 0000135a: PUSH1 0x04 0000135c: MSTORE 0000135d: PUSH1 0x24 0000135f: PUSH1 0x00 00001361: REVERT 00001362: JUMPDEST 00001363: PUSH1 0x00 00001365: SWAP2 00001366: DUP3 00001367: MSTORE 00001368: PUSH1 0x20 0000136a: SWAP1 0000136b: SWAP2 0000136c: KECCAK256 0000136d: ADD 0000136e: SLOAD 0000136f: PUSH1 0xff 00001371: DUP1 00001372: SLOAD 00001373: PUSH1 0x01 00001375: PUSH1 0x01 00001377: PUSH1 0xa0 00001379: SHL 0000137a: SUB 0000137b: SWAP1 0000137c: SWAP3 0000137d: AND 0000137e: SWAP2 0000137f: DUP4 00001380: SWAP1 00001381: DUP2 00001382: LT 00001383: PUSH2 0x139c 00001386: JUMPI 00001387: PUSH4 0x4e487b71 0000138c: PUSH1 0xe0 0000138e: SHL 0000138f: PUSH1 0x00 00001391: MSTORE 00001392: PUSH1 0x32 00001394: PUSH1 0x04 00001396: MSTORE 00001397: PUSH1 0x24 00001399: PUSH1 0x00 0000139b: REVERT 0000139c: JUMPDEST 0000139d: SWAP1 0000139e: PUSH1 0x00 000013a0: MSTORE 000013a1: PUSH1 0x20 000013a3: PUSH1 0x00 000013a5: KECCAK256 000013a6: ADD 000013a7: PUSH1 0x00 000013a9: PUSH2 0x0100 000013ac: EXP 000013ad: DUP2 000013ae: SLOAD 000013af: DUP2 000013b0: PUSH1 0x01 000013b2: PUSH1 0x01 000013b4: PUSH1 0xa0 000013b6: SHL 000013b7: SUB 000013b8: MUL 000013b9: NOT 000013ba: AND 000013bb: SWAP1 000013bc: DUP4 000013bd: PUSH1 0x01 000013bf: PUSH1 0x01 000013c1: PUSH1 0xa0 000013c3: SHL 000013c4: SUB 000013c5: AND 000013c6: MUL 000013c7: OR 000013c8: SWAP1 000013c9: SSTORE 000013ca: POP 000013cb: PUSH1 0xff 000013cd: DUP1 000013ce: SLOAD 000013cf: DUP1 000013d0: PUSH2 0x13e9 000013d3: JUMPI 000013d4: PUSH4 0x4e487b71 000013d9: PUSH1 0xe0 000013db: SHL 000013dc: PUSH1 0x00 000013de: MSTORE 000013df: PUSH1 0x31 000013e1: PUSH1 0x04 000013e3: MSTORE 000013e4: PUSH1 0x24 000013e6: PUSH1 0x00 000013e8: REVERT 000013e9: JUMPDEST 000013ea: PUSH1 0x00 000013ec: DUP3 000013ed: DUP2 000013ee: MSTORE 000013ef: PUSH1 0x20 000013f1: DUP1 000013f2: DUP3 000013f3: KECCAK256 000013f4: DUP4 000013f5: ADD 000013f6: PUSH1 0x00 000013f8: NOT 000013f9: SWAP1 000013fa: DUP2 000013fb: ADD 000013fc: DUP1 000013fd: SLOAD 000013fe: PUSH1 0x01 00001400: PUSH1 0x01 00001402: PUSH1 0xa0 00001404: SHL 00001405: SUB 00001406: NOT 00001407: AND 00001408: SWAP1 00001409: SSTORE 0000140a: SWAP1 0000140b: SWAP3 0000140c: ADD 0000140d: SWAP1 0000140e: SWAP3 0000140f: SSTORE 00001410: PUSH1 0x01 00001412: PUSH1 0x01 00001414: PUSH1 0xa0 00001416: SHL 00001417: SUB 00001418: DUP5 00001419: AND 0000141a: DUP3 0000141b: MSTORE 0000141c: PUSH2 0x0100 0000141f: SWAP1 00001420: MSTORE 00001421: PUSH1 0x40 00001423: SWAP1 00001424: KECCAK256 00001425: DUP1 00001426: SLOAD 00001427: PUSH1 0xff 00001429: NOT 0000142a: AND 0000142b: SWAP1 0000142c: SSTORE 0000142d: POP 0000142e: PUSH2 0x0d31 00001431: JUMP 00001432: JUMPDEST 00001433: DUP1 00001434: PUSH2 0x143c 00001437: DUP2 00001438: PUSH2 0x412c 0000143b: JUMP 0000143c: JUMPDEST 0000143d: SWAP2 0000143e: POP 0000143f: POP 00001440: PUSH2 0x12e4 00001443: JUMP 00001444: JUMPDEST 00001445: PUSH1 0x00 00001447: SLOAD 00001448: PUSH2 0x0100 0000144b: SWAP1 0000144c: DIV 0000144d: PUSH1 0xff 0000144f: AND 00001450: DUP1 00001451: PUSH2 0x145d 00001454: JUMPI 00001455: POP 00001456: PUSH1 0x00 00001458: SLOAD 00001459: PUSH1 0xff 0000145b: AND 0000145c: ISZERO 0000145d: JUMPDEST 0000145e: PUSH2 0x1479 00001461: JUMPI 00001462: PUSH1 0x40 00001464: MLOAD 00001465: PUSH3 0x461bcd 00001469: PUSH1 0xe5 0000146b: SHL 0000146c: DUP2 0000146d: MSTORE 0000146e: PUSH1 0x04 00001470: ADD 00001471: PUSH2 0x08ef 00001474: SWAP1 00001475: PUSH2 0x3fba 00001478: JUMP 00001479: JUMPDEST 0000147a: PUSH1 0x00 0000147c: SLOAD 0000147d: PUSH2 0x0100 00001480: SWAP1 00001481: DIV 00001482: PUSH1 0xff 00001484: AND 00001485: ISZERO 00001486: DUP1 00001487: ISZERO 00001488: PUSH2 0x14a4 0000148b: JUMPI 0000148c: PUSH1 0x00 0000148e: DUP1 0000148f: SLOAD 00001490: PUSH1 0xff 00001492: NOT 00001493: PUSH2 0xff00 00001496: NOT 00001497: SWAP1 00001498: SWAP2 00001499: AND 0000149a: PUSH2 0x0100 0000149d: OR 0000149e: AND 0000149f: PUSH1 0x01 000014a1: OR 000014a2: SWAP1 000014a3: SSTORE 000014a4: JUMPDEST 000014a5: PUSH2 0x14ac 000014a8: PUSH2 0x2975 000014ab: JUMP 000014ac: JUMPDEST 000014ad: PUSH2 0x14b4 000014b0: PUSH2 0x2975 000014b3: JUMP 000014b4: JUMPDEST 000014b5: PUSH2 0x14bd 000014b8: CHAINID 000014b9: PUSH1 0xfc 000014bb: SSTORE 000014bc: JUMP 000014bd: JUMPDEST 000014be: PUSH1 0xfd 000014c0: DUP1 000014c1: SLOAD 000014c2: PUSH1 0x01 000014c4: PUSH1 0x01 000014c6: PUSH1 0xa0 000014c8: SHL 000014c9: SUB 000014ca: NOT 000014cb: AND 000014cc: PUSH20 0x1111111111111111111111111111111111111111 000014e1: OR 000014e2: SWAP1 000014e3: SSTORE 000014e4: PUSH1 0xfc 000014e6: SLOAD 000014e7: PUSH1 0x00 000014e9: SWAP1 000014ea: DUP2 000014eb: MSTORE 000014ec: PUSH2 0x0101 000014ef: PUSH1 0x20 000014f1: MSTORE 000014f2: PUSH1 0x40 000014f4: DUP2 000014f5: KECCAK256 000014f6: DUP1 000014f7: SLOAD 000014f8: PUSH1 0xff 000014fa: NOT 000014fb: AND 000014fc: PUSH1 0x01 000014fe: OR 000014ff: SWAP1 00001500: SSTORE 00001501: PUSH1 0x02 00001503: PUSH2 0x0109 00001506: SSTORE 00001507: PUSH2 0x0107 0000150a: SSTORE 0000150b: PUSH2 0x151c 0000150e: PUSH1 0x97 00001510: SLOAD 00001511: PUSH1 0x01 00001513: PUSH1 0x01 00001515: PUSH1 0xa0 00001517: SHL 00001518: SUB 00001519: AND 0000151a: SWAP1 0000151b: JUMP 0000151c: JUMPDEST 0000151d: PUSH1 0xfb 0000151f: DUP1 00001520: SLOAD 00001521: PUSH1 0x01 00001523: PUSH1 0x01 00001525: PUSH1 0xa0 00001527: SHL 00001528: SUB 00001529: NOT 0000152a: AND 0000152b: PUSH1 0x01 0000152d: PUSH1 0x01 0000152f: PUSH1 0xa0 00001531: SHL 00001532: SUB 00001533: SWAP3 00001534: SWAP1 00001535: SWAP3 00001536: AND 00001537: SWAP2 00001538: SWAP1 00001539: SWAP2 0000153a: OR 0000153b: SWAP1 0000153c: SSTORE 0000153d: PUSH1 0x00 0000153f: JUMPDEST 00001540: DUP3 00001541: MLOAD 00001542: DUP2 00001543: LT 00001544: ISZERO 00001545: PUSH2 0x15af 00001548: JUMPI 00001549: PUSH1 0x01 0000154b: PUSH2 0x0101 0000154e: PUSH1 0x00 00001550: DUP6 00001551: DUP5 00001552: DUP2 00001553: MLOAD 00001554: DUP2 00001555: LT 00001556: PUSH2 0x156f 00001559: JUMPI 0000155a: PUSH4 0x4e487b71 0000155f: PUSH1 0xe0 00001561: SHL 00001562: PUSH1 0x00 00001564: MSTORE 00001565: PUSH1 0x32 00001567: PUSH1 0x04 00001569: MSTORE 0000156a: PUSH1 0x24 0000156c: PUSH1 0x00 0000156e: REVERT 0000156f: JUMPDEST 00001570: PUSH1 0x20 00001572: MUL 00001573: PUSH1 0x20 00001575: ADD 00001576: ADD 00001577: MLOAD 00001578: DUP2 00001579: MSTORE 0000157a: PUSH1 0x20 0000157c: ADD 0000157d: SWAP1 0000157e: DUP2 0000157f: MSTORE 00001580: PUSH1 0x20 00001582: ADD 00001583: PUSH1 0x00 00001585: KECCAK256 00001586: PUSH1 0x00 00001588: PUSH2 0x0100 0000158b: EXP 0000158c: DUP2 0000158d: SLOAD 0000158e: DUP2 0000158f: PUSH1 0xff 00001591: MUL 00001592: NOT 00001593: AND 00001594: SWAP1 00001595: DUP4 00001596: ISZERO 00001597: ISZERO 00001598: MUL 00001599: OR 0000159a: SWAP1 0000159b: SSTORE 0000159c: POP 0000159d: DUP1 0000159e: DUP1 0000159f: PUSH2 0x15a7 000015a2: SWAP1 000015a3: PUSH2 0x412c 000015a6: JUMP 000015a7: JUMPDEST 000015a8: SWAP2 000015a9: POP 000015aa: POP 000015ab: PUSH2 0x153f 000015ae: JUMP 000015af: JUMPDEST 000015b0: POP 000015b1: PUSH1 0x0a 000015b3: PUSH2 0x010c 000015b6: SSTORE 000015b7: DUP1 000015b8: ISZERO 000015b9: PUSH2 0x0e46 000015bc: JUMPI 000015bd: PUSH1 0x00 000015bf: DUP1 000015c0: SLOAD 000015c1: PUSH2 0xff00 000015c4: NOT 000015c5: AND 000015c6: SWAP1 000015c7: SSTORE 000015c8: POP 000015c9: POP 000015ca: JUMP 000015cb: JUMPDEST 000015cc: PUSH1 0x97 000015ce: SLOAD 000015cf: PUSH1 0x01 000015d1: PUSH1 0x01 000015d3: PUSH1 0xa0 000015d5: SHL 000015d6: SUB 000015d7: AND 000015d8: CALLER 000015d9: EQ 000015da: PUSH2 0x15f5 000015dd: JUMPI 000015de: PUSH1 0x40 000015e0: MLOAD 000015e1: PUSH3 0x461bcd 000015e5: PUSH1 0xe5 000015e7: SHL 000015e8: DUP2 000015e9: MSTORE 000015ea: PUSH1 0x04 000015ec: ADD 000015ed: PUSH2 0x08ef 000015f0: SWAP1 000015f1: PUSH2 0x4008 000015f4: JUMP 000015f5: JUMPDEST 000015f6: PUSH2 0x15ff 000015f9: PUSH1 0x00 000015fb: PUSH2 0x29f1 000015fe: JUMP 000015ff: JUMPDEST 00001600: JUMP 00001601: JUMPDEST 00001602: PUSH1 0x00 00001604: DUP1 00001605: PUSH2 0x010c 00001608: SLOAD 00001609: PUSH1 0x00 0000160b: EQ 0000160c: PUSH2 0x1618 0000160f: JUMPI 00001610: PUSH2 0x010c 00001613: SLOAD 00001614: PUSH2 0x161b 00001617: JUMP 00001618: JUMPDEST 00001619: PUSH1 0x0a 0000161b: JUMPDEST 0000161c: SWAP1 0000161d: POP 0000161e: SWAP2 0000161f: POP 00001620: SWAP2 00001621: JUMP 00001622: JUMPDEST 00001623: PUSH1 0x97 00001625: SLOAD 00001626: PUSH1 0x01 00001628: PUSH1 0x01 0000162a: PUSH1 0xa0 0000162c: SHL 0000162d: SUB 0000162e: AND 0000162f: CALLER 00001630: EQ 00001631: PUSH2 0x164c 00001634: JUMPI 00001635: PUSH1 0x40 00001637: MLOAD 00001638: PUSH3 0x461bcd 0000163c: PUSH1 0xe5 0000163e: SHL 0000163f: DUP2 00001640: MSTORE 00001641: PUSH1 0x04 00001643: ADD 00001644: PUSH2 0x08ef 00001647: SWAP1 00001648: PUSH2 0x3f91 0000164b: JUMP 0000164c: JUMPDEST 0000164d: PUSH2 0x010c 00001650: SSTORE 00001651: JUMP 00001652: JUMPDEST 00001653: PUSH1 0x97 00001655: SLOAD 00001656: PUSH1 0x01 00001658: PUSH1 0x01 0000165a: PUSH1 0xa0 0000165c: SHL 0000165d: SUB 0000165e: AND 0000165f: CALLER 00001660: EQ 00001661: PUSH2 0x167c 00001664: JUMPI 00001665: PUSH1 0x40 00001667: MLOAD 00001668: PUSH3 0x461bcd 0000166c: PUSH1 0xe5 0000166e: SHL 0000166f: DUP2 00001670: MSTORE 00001671: PUSH1 0x04 00001673: ADD 00001674: PUSH2 0x08ef 00001677: SWAP1 00001678: PUSH2 0x3f91 0000167b: JUMP 0000167c: JUMPDEST 0000167d: PUSH1 0xfb 0000167f: DUP1 00001680: SLOAD 00001681: PUSH1 0x01 00001683: PUSH1 0x01 00001685: PUSH1 0xa0 00001687: SHL 00001688: SUB 00001689: NOT 0000168a: AND 0000168b: PUSH1 0x01 0000168d: PUSH1 0x01 0000168f: PUSH1 0xa0 00001691: SHL 00001692: SUB 00001693: SWAP3 00001694: SWAP1 00001695: SWAP3 00001696: AND 00001697: SWAP2 00001698: SWAP1 00001699: SWAP2 0000169a: OR 0000169b: SWAP1 0000169c: SSTORE 0000169d: JUMP 0000169e: JUMPDEST 0000169f: PUSH1 0x02 000016a1: PUSH1 0xc9 000016a3: SLOAD 000016a4: EQ 000016a5: ISZERO 000016a6: PUSH2 0x16f1 000016a9: JUMPI 000016aa: PUSH1 0x40 000016ac: MLOAD 000016ad: PUSH3 0x461bcd 000016b1: PUSH1 0xe5 000016b3: SHL 000016b4: DUP2 000016b5: MSTORE 000016b6: PUSH1 0x20 000016b8: PUSH1 0x04 000016ba: DUP3 000016bb: ADD 000016bc: MSTORE 000016bd: PUSH1 0x1f 000016bf: PUSH1 0x24 000016c1: DUP3 000016c2: ADD 000016c3: MSTORE 000016c4: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 000016e5: PUSH1 0x44 000016e7: DUP3 000016e8: ADD 000016e9: MSTORE 000016ea: PUSH1 0x64 000016ec: ADD 000016ed: PUSH2 0x08ef 000016f0: JUMP 000016f1: JUMPDEST 000016f2: PUSH1 0x02 000016f4: PUSH1 0xc9 000016f6: SSTORE 000016f7: DUP8 000016f8: MLOAD 000016f9: PUSH1 0x04 000016fb: EQ 000016fc: DUP1 000016fd: ISZERO 000016fe: PUSH2 0x1730 00001701: JUMPI 00001702: POP 00001703: DUP8 00001704: PUSH1 0x02 00001706: DUP2 00001707: MLOAD 00001708: DUP2 00001709: LT 0000170a: PUSH2 0x1723 0000170d: JUMPI 0000170e: PUSH4 0x4e487b71 00001713: PUSH1 0xe0 00001715: SHL 00001716: PUSH1 0x00 00001718: MSTORE 00001719: PUSH1 0x32 0000171b: PUSH1 0x04 0000171d: MSTORE 0000171e: PUSH1 0x24 00001720: PUSH1 0x00 00001722: REVERT 00001723: JUMPDEST 00001724: PUSH1 0x20 00001726: MUL 00001727: PUSH1 0x20 00001729: ADD 0000172a: ADD 0000172b: MLOAD 0000172c: PUSH1 0xfc 0000172e: SLOAD 0000172f: EQ 00001730: JUMPDEST 00001731: PUSH2 0x176e 00001734: JUMPI 00001735: PUSH1 0x40 00001737: MLOAD 00001738: PUSH3 0x461bcd 0000173c: PUSH1 0xe5 0000173e: SHL 0000173f: DUP2 00001740: MSTORE 00001741: PUSH1 0x20 00001743: PUSH1 0x04 00001745: DUP3 00001746: ADD 00001747: MSTORE 00001748: PUSH1 0x0f 0000174a: PUSH1 0x24 0000174c: DUP3 0000174d: ADD 0000174e: MSTORE 0000174f: PUSH15 0x21636861696e20696420636c61696d 0000175f: PUSH1 0x88 00001761: SHL 00001762: PUSH1 0x44 00001764: DUP3 00001765: ADD 00001766: MSTORE 00001767: PUSH1 0x64 00001769: ADD 0000176a: PUSH2 0x08ef 0000176d: JUMP 0000176e: JUMPDEST 0000176f: PUSH1 0x00 00001771: DUP12 00001772: DUP12 00001773: DUP12 00001774: DUP12 00001775: DUP12 00001776: DUP9 00001777: DUP9 00001778: DUP9 00001779: PUSH1 0x40 0000177b: MLOAD 0000177c: PUSH1 0x20 0000177e: ADD 0000177f: PUSH2 0x178f 00001782: SWAP9 00001783: SWAP8 00001784: SWAP7 00001785: SWAP6 00001786: SWAP5 00001787: SWAP4 00001788: SWAP3 00001789: SWAP2 0000178a: SWAP1 0000178b: PUSH2 0x3d80 0000178e: JUMP 0000178f: JUMPDEST 00001790: PUSH1 0x40 00001792: DUP1 00001793: MLOAD 00001794: PUSH1 0x1f 00001796: NOT 00001797: DUP2 00001798: DUP5 00001799: SUB 0000179a: ADD 0000179b: DUP2 0000179c: MSTORE 0000179d: SWAP2 0000179e: DUP2 0000179f: MSTORE 000017a0: DUP2 000017a1: MLOAD 000017a2: PUSH1 0x20 000017a4: SWAP3 000017a5: DUP4 000017a6: ADD 000017a7: KECCAK256 000017a8: PUSH1 0x00 000017aa: DUP2 000017ab: DUP2 000017ac: MSTORE 000017ad: PUSH1 0xfe 000017af: SWAP1 000017b0: SWAP4 000017b1: MSTORE 000017b2: SWAP2 000017b3: KECCAK256 000017b4: SLOAD 000017b5: SWAP1 000017b6: SWAP2 000017b7: POP 000017b8: PUSH1 0xff 000017ba: AND 000017bb: ISZERO 000017bc: PUSH2 0x17f7 000017bf: JUMPI 000017c0: PUSH1 0x40 000017c2: MLOAD 000017c3: PUSH3 0x461bcd 000017c7: PUSH1 0xe5 000017c9: SHL 000017ca: DUP2 000017cb: MSTORE 000017cc: PUSH1 0x20 000017ce: PUSH1 0x04 000017d0: DUP3 000017d1: ADD 000017d2: MSTORE 000017d3: PUSH1 0x0d 000017d5: PUSH1 0x24 000017d7: DUP3 000017d8: ADD 000017d9: MSTORE 000017da: PUSH13 0x616c726561647920636c61696d 000017e8: PUSH1 0x98 000017ea: SHL 000017eb: PUSH1 0x44 000017ed: DUP3 000017ee: ADD 000017ef: MSTORE 000017f0: PUSH1 0x64 000017f2: ADD 000017f3: PUSH2 0x08ef 000017f6: JUMP 000017f7: JUMPDEST 000017f8: PUSH1 0x00 000017fa: DUP2 000017fb: DUP2 000017fc: MSTORE 000017fd: PUSH1 0xfe 000017ff: PUSH1 0x20 00001801: MSTORE 00001802: PUSH1 0x40 00001804: SWAP1 00001805: KECCAK256 00001806: DUP1 00001807: SLOAD 00001808: PUSH1 0xff 0000180a: NOT 0000180b: AND 0000180c: PUSH1 0x01 0000180e: OR 0000180f: SWAP1 00001810: SSTORE 00001811: PUSH2 0x181c 00001814: DUP8 00001815: DUP8 00001816: DUP8 00001817: DUP5 00001818: PUSH2 0x2a43 0000181b: JUMP 0000181c: JUMPDEST 0000181d: PUSH2 0x185d 00001820: JUMPI 00001821: PUSH1 0x40 00001823: MLOAD 00001824: PUSH3 0x461bcd 00001828: PUSH1 0xe5 0000182a: SHL 0000182b: DUP2 0000182c: MSTORE 0000182d: PUSH1 0x20 0000182f: PUSH1 0x04 00001831: DUP3 00001832: ADD 00001833: MSTORE 00001834: PUSH1 0x12 00001836: PUSH1 0x24 00001838: DUP3 00001839: ADD 0000183a: MSTORE 0000183b: PUSH18 0x696e76616c6964207369676e617475726573 0000184e: PUSH1 0x70 00001850: SHL 00001851: PUSH1 0x44 00001853: DUP3 00001854: ADD 00001855: MSTORE 00001856: PUSH1 0x64 00001858: ADD 00001859: PUSH2 0x08ef 0000185c: JUMP 0000185d: JUMPDEST 0000185e: PUSH2 0x1866 00001861: CALLVALUE 00001862: PUSH2 0x2dd2 00001865: JUMP 00001866: JUMPDEST 00001867: PUSH1 0xfd 00001869: SLOAD 0000186a: PUSH1 0x01 0000186c: PUSH1 0x01 0000186e: PUSH1 0xa0 00001870: SHL 00001871: SUB 00001872: DUP14 00001873: DUP2 00001874: AND 00001875: SWAP2 00001876: AND 00001877: EQ 00001878: ISZERO 00001879: PUSH2 0x1d04 0000187c: JUMPI 0000187d: PUSH1 0xfc 0000187f: SLOAD 00001880: DUP10 00001881: PUSH1 0x00 00001883: DUP2 00001884: MLOAD 00001885: DUP2 00001886: LT 00001887: PUSH2 0x18a0 0000188a: JUMPI 0000188b: PUSH4 0x4e487b71 00001890: PUSH1 0xe0 00001892: SHL 00001893: PUSH1 0x00 00001895: MSTORE 00001896: PUSH1 0x32 00001898: PUSH1 0x04 0000189a: MSTORE 0000189b: PUSH1 0x24 0000189d: PUSH1 0x00 0000189f: REVERT 000018a0: JUMPDEST 000018a1: PUSH1 0x20 000018a3: MUL 000018a4: PUSH1 0x20 000018a6: ADD 000018a7: ADD 000018a8: MLOAD 000018a9: EQ 000018aa: PUSH2 0x1c0a 000018ad: JUMPI 000018ae: PUSH1 0x00 000018b0: PUSH1 0x01 000018b2: PUSH1 0x01 000018b4: PUSH1 0xa0 000018b6: SHL 000018b7: SUB 000018b8: AND 000018b9: PUSH2 0x0104 000018bc: PUSH1 0x00 000018be: DUP12 000018bf: PUSH1 0x00 000018c1: DUP2 000018c2: MLOAD 000018c3: DUP2 000018c4: LT 000018c5: PUSH2 0x18de 000018c8: JUMPI 000018c9: PUSH4 0x4e487b71 000018ce: PUSH1 0xe0 000018d0: SHL 000018d1: PUSH1 0x00 000018d3: MSTORE 000018d4: PUSH1 0x32 000018d6: PUSH1 0x04 000018d8: MSTORE 000018d9: PUSH1 0x24 000018db: PUSH1 0x00 000018dd: REVERT 000018de: JUMPDEST 000018df: PUSH1 0x20 000018e1: MUL 000018e2: PUSH1 0x20 000018e4: ADD 000018e5: ADD 000018e6: MLOAD 000018e7: DUP2 000018e8: MSTORE 000018e9: PUSH1 0x20 000018eb: ADD 000018ec: SWAP1 000018ed: DUP2 000018ee: MSTORE 000018ef: PUSH1 0x20 000018f1: ADD 000018f2: PUSH1 0x00 000018f4: KECCAK256 000018f5: PUSH1 0x00 000018f7: DUP15 000018f8: PUSH1 0x01 000018fa: PUSH1 0x01 000018fc: PUSH1 0xa0 000018fe: SHL 000018ff: SUB 00001900: AND 00001901: PUSH1 0x01 00001903: PUSH1 0x01 00001905: PUSH1 0xa0 00001907: SHL 00001908: SUB 00001909: AND 0000190a: DUP2 0000190b: MSTORE 0000190c: PUSH1 0x20 0000190e: ADD 0000190f: SWAP1 00001910: DUP2 00001911: MSTORE 00001912: PUSH1 0x20 00001914: ADD 00001915: PUSH1 0x00 00001917: KECCAK256 00001918: PUSH1 0x00 0000191a: SWAP1 0000191b: SLOAD 0000191c: SWAP1 0000191d: PUSH2 0x0100 00001920: EXP 00001921: SWAP1 00001922: DIV 00001923: PUSH1 0x01 00001925: PUSH1 0x01 00001927: PUSH1 0xa0 00001929: SHL 0000192a: SUB 0000192b: AND 0000192c: PUSH1 0x01 0000192e: PUSH1 0x01 00001930: PUSH1 0xa0 00001932: SHL 00001933: SUB 00001934: AND 00001935: EQ 00001936: ISZERO 00001937: PUSH2 0x1b10 0000193a: JUMPI 0000193b: PUSH1 0x00 0000193d: PUSH1 0x40 0000193f: MLOAD 00001940: PUSH2 0x1948 00001943: SWAP1 00001944: PUSH2 0x36f3 00001947: JUMP 00001948: JUMPDEST 00001949: PUSH1 0x40 0000194b: MLOAD 0000194c: DUP1 0000194d: SWAP2 0000194e: SUB 0000194f: SWAP1 00001950: PUSH1 0x00 00001952: CREATE 00001953: DUP1 00001954: ISZERO 00001955: DUP1 00001956: ISZERO 00001957: PUSH2 0x1964 0000195a: JUMPI 0000195b: RETURNDATASIZE 0000195c: PUSH1 0x00 0000195e: DUP1 0000195f: RETURNDATACOPY 00001960: RETURNDATASIZE 00001961: PUSH1 0x00 00001963: REVERT 00001964: JUMPDEST 00001965: POP 00001966: SWAP1 00001967: POP 00001968: DUP1 00001969: PUSH1 0x01 0000196b: PUSH1 0x01 0000196d: PUSH1 0xa0 0000196f: SHL 00001970: SUB 00001971: AND 00001972: PUSH4 0xbe88368d 00001977: DUP15 00001978: DUP13 00001979: PUSH1 0x00 0000197b: DUP2 0000197c: MLOAD 0000197d: DUP2 0000197e: LT 0000197f: PUSH2 0x1998 00001982: JUMPI 00001983: PUSH4 0x4e487b71 00001988: PUSH1 0xe0 0000198a: SHL 0000198b: PUSH1 0x00 0000198d: MSTORE 0000198e: PUSH1 0x32 00001990: PUSH1 0x04 00001992: MSTORE 00001993: PUSH1 0x24 00001995: PUSH1 0x00 00001997: REVERT 00001998: JUMPDEST 00001999: PUSH1 0x20 0000199b: MUL 0000199c: PUSH1 0x20 0000199e: ADD 0000199f: ADD 000019a0: MLOAD 000019a1: DUP9 000019a2: DUP9 000019a3: DUP9 000019a4: PUSH1 0x40 000019a6: MLOAD 000019a7: DUP7 000019a8: PUSH4 0xffffffff 000019ad: AND 000019ae: PUSH1 0xe0 000019b0: SHL 000019b1: DUP2 000019b2: MSTORE 000019b3: PUSH1 0x04 000019b5: ADD 000019b6: PUSH2 0x19c3 000019b9: SWAP6 000019ba: SWAP5 000019bb: SWAP4 000019bc: SWAP3 000019bd: SWAP2 000019be: SWAP1 000019bf: PUSH2 0x3dfb 000019c2: JUMP 000019c3: JUMPDEST 000019c4: PUSH1 0x00 000019c6: PUSH1 0x40 000019c8: MLOAD 000019c9: DUP1 000019ca: DUP4 000019cb: SUB 000019cc: DUP2 000019cd: PUSH1 0x00 000019cf: DUP8 000019d0: DUP1 000019d1: EXTCODESIZE 000019d2: ISZERO 000019d3: DUP1 000019d4: ISZERO 000019d5: PUSH2 0x19dd 000019d8: JUMPI 000019d9: PUSH1 0x00 000019db: DUP1 000019dc: REVERT 000019dd: JUMPDEST 000019de: POP 000019df: GAS 000019e0: CALL 000019e1: ISZERO 000019e2: DUP1 000019e3: ISZERO 000019e4: PUSH2 0x19f1 000019e7: JUMPI 000019e8: RETURNDATASIZE 000019e9: PUSH1 0x00 000019eb: DUP1 000019ec: RETURNDATACOPY 000019ed: RETURNDATASIZE 000019ee: PUSH1 0x00 000019f0: REVERT 000019f1: JUMPDEST 000019f2: POP 000019f3: POP 000019f4: POP 000019f5: POP 000019f6: DUP1 000019f7: PUSH2 0x0104 000019fa: PUSH1 0x00 000019fc: DUP13 000019fd: PUSH1 0x00 000019ff: DUP2 00001a00: MLOAD 00001a01: DUP2 00001a02: LT 00001a03: PUSH2 0x1a1c 00001a06: JUMPI 00001a07: PUSH4 0x4e487b71 00001a0c: PUSH1 0xe0 00001a0e: SHL 00001a0f: PUSH1 0x00 00001a11: MSTORE 00001a12: PUSH1 0x32 00001a14: PUSH1 0x04 00001a16: MSTORE 00001a17: PUSH1 0x24 00001a19: PUSH1 0x00 00001a1b: REVERT 00001a1c: JUMPDEST 00001a1d: PUSH1 0x20 00001a1f: MUL 00001a20: PUSH1 0x20 00001a22: ADD 00001a23: ADD 00001a24: MLOAD 00001a25: DUP2 00001a26: MSTORE 00001a27: PUSH1 0x20 00001a29: ADD 00001a2a: SWAP1 00001a2b: DUP2 00001a2c: MSTORE 00001a2d: PUSH1 0x20 00001a2f: ADD 00001a30: PUSH1 0x00 00001a32: KECCAK256 00001a33: PUSH1 0x00 00001a35: DUP16 00001a36: PUSH1 0x01 00001a38: PUSH1 0x01 00001a3a: PUSH1 0xa0 00001a3c: SHL 00001a3d: SUB 00001a3e: AND 00001a3f: PUSH1 0x01 00001a41: PUSH1 0x01 00001a43: PUSH1 0xa0 00001a45: SHL 00001a46: SUB 00001a47: AND 00001a48: DUP2 00001a49: MSTORE 00001a4a: PUSH1 0x20 00001a4c: ADD 00001a4d: SWAP1 00001a4e: DUP2 00001a4f: MSTORE 00001a50: PUSH1 0x20 00001a52: ADD 00001a53: PUSH1 0x00 00001a55: KECCAK256 00001a56: PUSH1 0x00 00001a58: PUSH2 0x0100 00001a5b: EXP 00001a5c: DUP2 00001a5d: SLOAD 00001a5e: DUP2 00001a5f: PUSH1 0x01 00001a61: PUSH1 0x01 00001a63: PUSH1 0xa0 00001a65: SHL 00001a66: SUB 00001a67: MUL 00001a68: NOT 00001a69: AND 00001a6a: SWAP1 00001a6b: DUP4 00001a6c: PUSH1 0x01 00001a6e: PUSH1 0x01 00001a70: PUSH1 0xa0 00001a72: SHL 00001a73: SUB 00001a74: AND 00001a75: MUL 00001a76: OR 00001a77: SWAP1 00001a78: SSTORE 00001a79: POP 00001a7a: PUSH1 0x40 00001a7c: MLOAD 00001a7d: DUP1 00001a7e: PUSH1 0x40 00001a80: ADD 00001a81: PUSH1 0x40 00001a83: MSTORE 00001a84: DUP1 00001a85: DUP15 00001a86: PUSH1 0x01 00001a88: PUSH1 0x01 00001a8a: PUSH1 0xa0 00001a8c: SHL 00001a8d: SUB 00001a8e: AND 00001a8f: DUP2 00001a90: MSTORE 00001a91: PUSH1 0x20 00001a93: ADD 00001a94: DUP12 00001a95: PUSH1 0x00 00001a97: DUP2 00001a98: MLOAD 00001a99: DUP2 00001a9a: LT 00001a9b: PUSH2 0x1ab4 00001a9e: JUMPI 00001a9f: PUSH4 0x4e487b71 00001aa4: PUSH1 0xe0 00001aa6: SHL 00001aa7: PUSH1 0x00 00001aa9: MSTORE 00001aaa: PUSH1 0x32 00001aac: PUSH1 0x04 00001aae: MSTORE 00001aaf: PUSH1 0x24 00001ab1: PUSH1 0x00 00001ab3: REVERT 00001ab4: JUMPDEST 00001ab5: PUSH1 0x20 00001ab7: SWAP1 00001ab8: DUP2 00001ab9: MUL 00001aba: SWAP2 00001abb: SWAP1 00001abc: SWAP2 00001abd: ADD 00001abe: DUP2 00001abf: ADD 00001ac0: MLOAD 00001ac1: SWAP1 00001ac2: SWAP2 00001ac3: MSTORE 00001ac4: PUSH1 0x01 00001ac6: PUSH1 0x01 00001ac8: PUSH1 0xa0 00001aca: SHL 00001acb: SUB 00001acc: SWAP3 00001acd: DUP4 00001ace: AND 00001acf: PUSH1 0x00 00001ad1: SWAP1 00001ad2: DUP2 00001ad3: MSTORE 00001ad4: PUSH2 0x0105 00001ad7: DUP3 00001ad8: MSTORE 00001ad9: PUSH1 0x40 00001adb: DUP1 00001adc: DUP3 00001add: KECCAK256 00001ade: DUP5 00001adf: MLOAD 00001ae0: DUP2 00001ae1: SLOAD 00001ae2: PUSH1 0x01 00001ae4: PUSH1 0x01 00001ae6: PUSH1 0xa0 00001ae8: SHL 00001ae9: SUB 00001aea: NOT 00001aeb: AND 00001aec: SWAP7 00001aed: AND 00001aee: SWAP6 00001aef: SWAP1 00001af0: SWAP6 00001af1: OR 00001af2: DUP6 00001af3: SSTORE 00001af4: SWAP3 00001af5: DUP3 00001af6: ADD 00001af7: MLOAD 00001af8: PUSH1 0x01 00001afa: SWAP5 00001afb: DUP6 00001afc: ADD 00001afd: SSTORE 00001afe: PUSH2 0x0106 00001b01: SWAP1 00001b02: SWAP2 00001b03: MSTORE 00001b04: KECCAK256 00001b05: DUP1 00001b06: SLOAD 00001b07: PUSH1 0xff 00001b09: NOT 00001b0a: AND 00001b0b: SWAP1 00001b0c: SWAP2 00001b0d: OR 00001b0e: SWAP1 00001b0f: SSTORE 00001b10: JUMPDEST 00001b11: PUSH2 0x1b1d 00001b14: DUP11 00001b15: DUP14 00001b16: DUP12 00001b17: DUP12 00001b18: DUP16 00001b19: PUSH2 0x2e35 00001b1c: JUMP 00001b1d: JUMPDEST 00001b1e: DUP11 00001b1f: PUSH1 0x01 00001b21: PUSH1 0x01 00001b23: PUSH1 0xa0 00001b25: SHL 00001b26: SUB 00001b27: AND 00001b28: DUP13 00001b29: PUSH1 0x01 00001b2b: PUSH1 0x01 00001b2d: PUSH1 0xa0 00001b2f: SHL 00001b30: SUB 00001b31: AND 00001b32: PUSH32 0x91e6edd0a13d88402389ca421cdea8b8c5e72d7b05706b6488c7d0008f853a0d 00001b53: DUP13 00001b54: DUP13 00001b55: PUSH1 0x00 00001b57: DUP2 00001b58: MLOAD 00001b59: DUP2 00001b5a: LT 00001b5b: PUSH2 0x1b74 00001b5e: JUMPI 00001b5f: PUSH4 0x4e487b71 00001b64: PUSH1 0xe0 00001b66: SHL 00001b67: PUSH1 0x00 00001b69: MSTORE 00001b6a: PUSH1 0x32 00001b6c: PUSH1 0x04 00001b6e: MSTORE 00001b6f: PUSH1 0x24 00001b71: PUSH1 0x00 00001b73: REVERT 00001b74: JUMPDEST 00001b75: PUSH1 0x20 00001b77: MUL 00001b78: PUSH1 0x20 00001b7a: ADD 00001b7b: ADD 00001b7c: MLOAD 00001b7d: DUP14 00001b7e: PUSH1 0x01 00001b80: DUP2 00001b81: MLOAD 00001b82: DUP2 00001b83: LT 00001b84: PUSH2 0x1b9d 00001b87: JUMPI 00001b88: PUSH4 0x4e487b71 00001b8d: PUSH1 0xe0 00001b8f: SHL 00001b90: PUSH1 0x00 00001b92: MSTORE 00001b93: PUSH1 0x32 00001b95: PUSH1 0x04 00001b97: MSTORE 00001b98: PUSH1 0x24 00001b9a: PUSH1 0x00 00001b9c: REVERT 00001b9d: JUMPDEST 00001b9e: PUSH1 0x20 00001ba0: MUL 00001ba1: PUSH1 0x20 00001ba3: ADD 00001ba4: ADD 00001ba5: MLOAD 00001ba6: PUSH1 0xfc 00001ba8: SLOAD 00001ba9: DUP16 00001baa: PUSH1 0x03 00001bac: DUP2 00001bad: MLOAD 00001bae: DUP2 00001baf: LT 00001bb0: PUSH2 0x1bc9 00001bb3: JUMPI 00001bb4: PUSH4 0x4e487b71 00001bb9: PUSH1 0xe0 00001bbb: SHL 00001bbc: PUSH1 0x00 00001bbe: MSTORE 00001bbf: PUSH1 0x32 00001bc1: PUSH1 0x04 00001bc3: MSTORE 00001bc4: PUSH1 0x24 00001bc6: PUSH1 0x00 00001bc8: REVERT 00001bc9: JUMPDEST 00001bca: PUSH1 0x20 00001bcc: SWAP1 00001bcd: DUP2 00001bce: MUL 00001bcf: SWAP2 00001bd0: SWAP1 00001bd1: SWAP2 00001bd2: ADD 00001bd3: DUP2 00001bd4: ADD 00001bd5: MLOAD 00001bd6: PUSH1 0x40 00001bd8: DUP1 00001bd9: MLOAD 00001bda: SWAP7 00001bdb: DUP8 00001bdc: MSTORE 00001bdd: SWAP2 00001bde: DUP7 00001bdf: ADD 00001be0: SWAP5 00001be1: SWAP1 00001be2: SWAP5 00001be3: MSTORE 00001be4: DUP5 00001be5: ADD 00001be6: SWAP2 00001be7: SWAP1 00001be8: SWAP2 00001be9: MSTORE 00001bea: PUSH1 0x60 00001bec: DUP4 00001bed: ADD 00001bee: MSTORE 00001bef: PUSH1 0x80 00001bf1: DUP3 00001bf2: ADD 00001bf3: MSTORE 00001bf4: PUSH1 0xa0 00001bf6: DUP2 00001bf7: ADD 00001bf8: DUP6 00001bf9: SWAP1 00001bfa: MSTORE 00001bfb: PUSH1 0xc0 00001bfd: ADD 00001bfe: PUSH1 0x40 00001c00: MLOAD 00001c01: DUP1 00001c02: SWAP2 00001c03: SUB 00001c04: SWAP1 00001c05: LOG3 00001c06: PUSH2 0x1cff 00001c09: JUMP 00001c0a: JUMPDEST 00001c0b: PUSH2 0x1c16 00001c0e: DUP11 00001c0f: DUP14 00001c10: DUP12 00001c11: DUP15 00001c12: PUSH2 0x2ef1 00001c15: JUMP 00001c16: JUMPDEST 00001c17: DUP11 00001c18: PUSH1 0x01 00001c1a: PUSH1 0x01 00001c1c: PUSH1 0xa0 00001c1e: SHL 00001c1f: SUB 00001c20: AND 00001c21: DUP13 00001c22: PUSH1 0x01 00001c24: PUSH1 0x01 00001c26: PUSH1 0xa0 00001c28: SHL 00001c29: SUB 00001c2a: AND 00001c2b: PUSH32 0x91e6edd0a13d88402389ca421cdea8b8c5e72d7b05706b6488c7d0008f853a0d 00001c4c: DUP13 00001c4d: DUP13 00001c4e: PUSH1 0x00 00001c50: DUP2 00001c51: MLOAD 00001c52: DUP2 00001c53: LT 00001c54: PUSH2 0x1c6d 00001c57: JUMPI 00001c58: PUSH4 0x4e487b71 00001c5d: PUSH1 0xe0 00001c5f: SHL 00001c60: PUSH1 0x00 00001c62: MSTORE 00001c63: PUSH1 0x32 00001c65: PUSH1 0x04 00001c67: MSTORE 00001c68: PUSH1 0x24 00001c6a: PUSH1 0x00 00001c6c: REVERT 00001c6d: JUMPDEST 00001c6e: PUSH1 0x20 00001c70: MUL 00001c71: PUSH1 0x20 00001c73: ADD 00001c74: ADD 00001c75: MLOAD 00001c76: DUP14 00001c77: PUSH1 0x01 00001c79: DUP2 00001c7a: MLOAD 00001c7b: DUP2 00001c7c: LT 00001c7d: PUSH2 0x1c96 00001c80: JUMPI 00001c81: PUSH4 0x4e487b71 00001c86: PUSH1 0xe0 00001c88: SHL 00001c89: PUSH1 0x00 00001c8b: MSTORE 00001c8c: PUSH1 0x32 00001c8e: PUSH1 0x04 00001c90: MSTORE 00001c91: PUSH1 0x24 00001c93: PUSH1 0x00 00001c95: REVERT 00001c96: JUMPDEST 00001c97: PUSH1 0x20 00001c99: MUL 00001c9a: PUSH1 0x20 00001c9c: ADD 00001c9d: ADD 00001c9e: MLOAD 00001c9f: PUSH1 0xfc 00001ca1: SLOAD 00001ca2: DUP16 00001ca3: PUSH1 0x03 00001ca5: DUP2 00001ca6: MLOAD 00001ca7: DUP2 00001ca8: LT 00001ca9: PUSH2 0x1cc2 00001cac: JUMPI 00001cad: PUSH4 0x4e487b71 00001cb2: PUSH1 0xe0 00001cb4: SHL 00001cb5: PUSH1 0x00 00001cb7: MSTORE 00001cb8: PUSH1 0x32 00001cba: PUSH1 0x04 00001cbc: MSTORE 00001cbd: PUSH1 0x24 00001cbf: PUSH1 0x00 00001cc1: REVERT 00001cc2: JUMPDEST 00001cc3: PUSH1 0x20 00001cc5: SWAP1 00001cc6: DUP2 00001cc7: MUL 00001cc8: SWAP2 00001cc9: SWAP1 00001cca: SWAP2 00001ccb: ADD 00001ccc: DUP2 00001ccd: ADD 00001cce: MLOAD 00001ccf: PUSH1 0x40 00001cd1: DUP1 00001cd2: MLOAD 00001cd3: SWAP7 00001cd4: DUP8 00001cd5: MSTORE 00001cd6: SWAP2 00001cd7: DUP7 00001cd8: ADD 00001cd9: SWAP5 00001cda: SWAP1 00001cdb: SWAP5 00001cdc: MSTORE 00001cdd: DUP5 00001cde: ADD 00001cdf: SWAP2 00001ce0: SWAP1 00001ce1: SWAP2 00001ce2: MSTORE 00001ce3: PUSH1 0x60 00001ce5: DUP4 00001ce6: ADD 00001ce7: MSTORE 00001ce8: PUSH1 0x80 00001cea: DUP3 00001ceb: ADD 00001cec: MSTORE 00001ced: PUSH1 0xa0 00001cef: DUP2 00001cf0: ADD 00001cf1: DUP6 00001cf2: SWAP1 00001cf3: MSTORE 00001cf4: PUSH1 0xc0 00001cf6: ADD 00001cf7: PUSH1 0x40 00001cf9: MLOAD 00001cfa: DUP1 00001cfb: SWAP2 00001cfc: SUB 00001cfd: SWAP1 00001cfe: LOG3 00001cff: JUMPDEST 00001d00: PUSH2 0x2087 00001d03: JUMP 00001d04: JUMPDEST 00001d05: PUSH1 0x01 00001d07: PUSH1 0x01 00001d09: PUSH1 0xa0 00001d0b: SHL 00001d0c: SUB 00001d0d: DUP13 00001d0e: AND 00001d0f: PUSH1 0x00 00001d11: SWAP1 00001d12: DUP2 00001d13: MSTORE 00001d14: PUSH2 0x0102 00001d17: PUSH1 0x20 00001d19: MSTORE 00001d1a: PUSH1 0x40 00001d1c: SWAP1 00001d1d: KECCAK256 00001d1e: SLOAD 00001d1f: PUSH2 0x1f92 00001d22: JUMPI 00001d23: PUSH1 0x00 00001d25: PUSH1 0x01 00001d27: PUSH1 0x01 00001d29: PUSH1 0xa0 00001d2b: SHL 00001d2c: SUB 00001d2d: AND 00001d2e: PUSH2 0x0104 00001d31: PUSH1 0x00 00001d33: DUP12 00001d34: PUSH1 0x00 00001d36: DUP2 00001d37: MLOAD 00001d38: DUP2 00001d39: LT 00001d3a: PUSH2 0x1d53 00001d3d: JUMPI 00001d3e: PUSH4 0x4e487b71 00001d43: PUSH1 0xe0 00001d45: SHL 00001d46: PUSH1 0x00 00001d48: MSTORE 00001d49: PUSH1 0x32 00001d4b: PUSH1 0x04 00001d4d: MSTORE 00001d4e: PUSH1 0x24 00001d50: PUSH1 0x00 00001d52: REVERT 00001d53: JUMPDEST 00001d54: PUSH1 0x20 00001d56: MUL 00001d57: PUSH1 0x20 00001d59: ADD 00001d5a: ADD 00001d5b: MLOAD 00001d5c: DUP2 00001d5d: MSTORE 00001d5e: PUSH1 0x20 00001d60: ADD 00001d61: SWAP1 00001d62: DUP2 00001d63: MSTORE 00001d64: PUSH1 0x20 00001d66: ADD 00001d67: PUSH1 0x00 00001d69: KECCAK256 00001d6a: PUSH1 0x00 00001d6c: DUP15 00001d6d: PUSH1 0x01 00001d6f: PUSH1 0x01 00001d71: PUSH1 0xa0 00001d73: SHL 00001d74: SUB 00001d75: AND 00001d76: PUSH1 0x01 00001d78: PUSH1 0x01 00001d7a: PUSH1 0xa0 00001d7c: SHL 00001d7d: SUB 00001d7e: AND 00001d7f: DUP2 00001d80: MSTORE 00001d81: PUSH1 0x20 00001d83: ADD 00001d84: SWAP1 00001d85: DUP2 00001d86: MSTORE 00001d87: PUSH1 0x20 00001d89: ADD 00001d8a: PUSH1 0x00 00001d8c: KECCAK256 00001d8d: PUSH1 0x00 00001d8f: SWAP1 00001d90: SLOAD 00001d91: SWAP1 00001d92: PUSH2 0x0100 00001d95: EXP 00001d96: SWAP1 00001d97: DIV 00001d98: PUSH1 0x01 00001d9a: PUSH1 0x01 00001d9c: PUSH1 0xa0 00001d9e: SHL 00001d9f: SUB 00001da0: AND 00001da1: PUSH1 0x01 00001da3: PUSH1 0x01 00001da5: PUSH1 0xa0 00001da7: SHL 00001da8: SUB 00001da9: AND 00001daa: EQ 00001dab: ISZERO 00001dac: PUSH2 0x1f85 00001daf: JUMPI 00001db0: PUSH1 0x00 00001db2: PUSH1 0x40 00001db4: MLOAD 00001db5: PUSH2 0x1dbd 00001db8: SWAP1 00001db9: PUSH2 0x36f3 00001dbc: JUMP 00001dbd: JUMPDEST 00001dbe: PUSH1 0x40 00001dc0: MLOAD 00001dc1: DUP1 00001dc2: SWAP2 00001dc3: SUB 00001dc4: SWAP1 00001dc5: PUSH1 0x00 00001dc7: CREATE 00001dc8: DUP1 00001dc9: ISZERO 00001dca: DUP1 00001dcb: ISZERO 00001dcc: PUSH2 0x1dd9 00001dcf: JUMPI 00001dd0: RETURNDATASIZE 00001dd1: PUSH1 0x00 00001dd3: DUP1 00001dd4: RETURNDATACOPY 00001dd5: RETURNDATASIZE 00001dd6: PUSH1 0x00 00001dd8: REVERT 00001dd9: JUMPDEST 00001dda: POP 00001ddb: SWAP1 00001ddc: POP 00001ddd: DUP1 00001dde: PUSH1 0x01 00001de0: PUSH1 0x01 00001de2: PUSH1 0xa0 00001de4: SHL 00001de5: SUB 00001de6: AND 00001de7: PUSH4 0xbe88368d 00001dec: DUP15 00001ded: DUP13 00001dee: PUSH1 0x00 00001df0: DUP2 00001df1: MLOAD 00001df2: DUP2 00001df3: LT 00001df4: PUSH2 0x1e0d 00001df7: JUMPI 00001df8: PUSH4 0x4e487b71 00001dfd: PUSH1 0xe0 00001dff: SHL 00001e00: PUSH1 0x00 00001e02: MSTORE 00001e03: PUSH1 0x32 00001e05: PUSH1 0x04 00001e07: MSTORE 00001e08: PUSH1 0x24 00001e0a: PUSH1 0x00 00001e0c: REVERT 00001e0d: JUMPDEST 00001e0e: PUSH1 0x20 00001e10: MUL 00001e11: PUSH1 0x20 00001e13: ADD 00001e14: ADD 00001e15: MLOAD 00001e16: DUP9 00001e17: DUP9 00001e18: DUP9 00001e19: PUSH1 0x40 00001e1b: MLOAD 00001e1c: DUP7 00001e1d: PUSH4 0xffffffff 00001e22: AND 00001e23: PUSH1 0xe0 00001e25: SHL 00001e26: DUP2 00001e27: MSTORE 00001e28: PUSH1 0x04 00001e2a: ADD 00001e2b: PUSH2 0x1e38 00001e2e: SWAP6 00001e2f: SWAP5 00001e30: SWAP4 00001e31: SWAP3 00001e32: SWAP2 00001e33: SWAP1 00001e34: PUSH2 0x3dfb 00001e37: JUMP 00001e38: JUMPDEST 00001e39: PUSH1 0x00 00001e3b: PUSH1 0x40 00001e3d: MLOAD 00001e3e: DUP1 00001e3f: DUP4 00001e40: SUB 00001e41: DUP2 00001e42: PUSH1 0x00 00001e44: DUP8 00001e45: DUP1 00001e46: EXTCODESIZE 00001e47: ISZERO 00001e48: DUP1 00001e49: ISZERO 00001e4a: PUSH2 0x1e52 00001e4d: JUMPI 00001e4e: PUSH1 0x00 00001e50: DUP1 00001e51: REVERT 00001e52: JUMPDEST 00001e53: POP 00001e54: GAS 00001e55: CALL 00001e56: ISZERO 00001e57: DUP1 00001e58: ISZERO 00001e59: PUSH2 0x1e66 00001e5c: JUMPI 00001e5d: RETURNDATASIZE 00001e5e: PUSH1 0x00 00001e60: DUP1 00001e61: RETURNDATACOPY 00001e62: RETURNDATASIZE 00001e63: PUSH1 0x00 00001e65: REVERT 00001e66: JUMPDEST 00001e67: POP 00001e68: POP 00001e69: POP 00001e6a: POP 00001e6b: DUP1 00001e6c: PUSH2 0x0104 00001e6f: PUSH1 0x00 00001e71: DUP13 00001e72: PUSH1 0x00 00001e74: DUP2 00001e75: MLOAD 00001e76: DUP2 00001e77: LT 00001e78: PUSH2 0x1e91 00001e7b: JUMPI 00001e7c: PUSH4 0x4e487b71 00001e81: PUSH1 0xe0 00001e83: SHL 00001e84: PUSH1 0x00 00001e86: MSTORE 00001e87: PUSH1 0x32 00001e89: PUSH1 0x04 00001e8b: MSTORE 00001e8c: PUSH1 0x24 00001e8e: PUSH1 0x00 00001e90: REVERT 00001e91: JUMPDEST 00001e92: PUSH1 0x20 00001e94: MUL 00001e95: PUSH1 0x20 00001e97: ADD 00001e98: ADD 00001e99: MLOAD 00001e9a: DUP2 00001e9b: MSTORE 00001e9c: PUSH1 0x20 00001e9e: ADD 00001e9f: SWAP1 00001ea0: DUP2 00001ea1: MSTORE 00001ea2: PUSH1 0x20 00001ea4: ADD 00001ea5: PUSH1 0x00 00001ea7: KECCAK256 00001ea8: PUSH1 0x00 00001eaa: DUP16 00001eab: PUSH1 0x01 00001ead: PUSH1 0x01 00001eaf: PUSH1 0xa0 00001eb1: SHL 00001eb2: SUB 00001eb3: AND 00001eb4: PUSH1 0x01 00001eb6: PUSH1 0x01 00001eb8: PUSH1 0xa0 00001eba: SHL 00001ebb: SUB 00001ebc: AND 00001ebd: DUP2 00001ebe: MSTORE 00001ebf: PUSH1 0x20 00001ec1: ADD 00001ec2: SWAP1 00001ec3: DUP2 00001ec4: MSTORE 00001ec5: PUSH1 0x20 00001ec7: ADD 00001ec8: PUSH1 0x00 00001eca: KECCAK256 00001ecb: PUSH1 0x00 00001ecd: PUSH2 0x0100 00001ed0: EXP 00001ed1: DUP2 00001ed2: SLOAD 00001ed3: DUP2 00001ed4: PUSH1 0x01 00001ed6: PUSH1 0x01 00001ed8: PUSH1 0xa0 00001eda: SHL 00001edb: SUB 00001edc: MUL 00001edd: NOT 00001ede: AND 00001edf: SWAP1 00001ee0: DUP4 00001ee1: PUSH1 0x01 00001ee3: PUSH1 0x01 00001ee5: PUSH1 0xa0 00001ee7: SHL 00001ee8: SUB 00001ee9: AND 00001eea: MUL 00001eeb: OR 00001eec: SWAP1 00001eed: SSTORE 00001eee: POP 00001eef: PUSH1 0x40 00001ef1: MLOAD 00001ef2: DUP1 00001ef3: PUSH1 0x40 00001ef5: ADD 00001ef6: PUSH1 0x40 00001ef8: MSTORE 00001ef9: DUP1 00001efa: DUP15 00001efb: PUSH1 0x01 00001efd: PUSH1 0x01 00001eff: PUSH1 0xa0 00001f01: SHL 00001f02: SUB 00001f03: AND 00001f04: DUP2 00001f05: MSTORE 00001f06: PUSH1 0x20 00001f08: ADD 00001f09: DUP12 00001f0a: PUSH1 0x00 00001f0c: DUP2 00001f0d: MLOAD 00001f0e: DUP2 00001f0f: LT 00001f10: PUSH2 0x1f29 00001f13: JUMPI 00001f14: PUSH4 0x4e487b71 00001f19: PUSH1 0xe0 00001f1b: SHL 00001f1c: PUSH1 0x00 00001f1e: MSTORE 00001f1f: PUSH1 0x32 00001f21: PUSH1 0x04 00001f23: MSTORE 00001f24: PUSH1 0x24 00001f26: PUSH1 0x00 00001f28: REVERT 00001f29: JUMPDEST 00001f2a: PUSH1 0x20 00001f2c: SWAP1 00001f2d: DUP2 00001f2e: MUL 00001f2f: SWAP2 00001f30: SWAP1 00001f31: SWAP2 00001f32: ADD 00001f33: DUP2 00001f34: ADD 00001f35: MLOAD 00001f36: SWAP1 00001f37: SWAP2 00001f38: MSTORE 00001f39: PUSH1 0x01 00001f3b: PUSH1 0x01 00001f3d: PUSH1 0xa0 00001f3f: SHL 00001f40: SUB 00001f41: SWAP3 00001f42: DUP4 00001f43: AND 00001f44: PUSH1 0x00 00001f46: SWAP1 00001f47: DUP2 00001f48: MSTORE 00001f49: PUSH2 0x0105 00001f4c: DUP3 00001f4d: MSTORE 00001f4e: PUSH1 0x40 00001f50: DUP1 00001f51: DUP3 00001f52: KECCAK256 00001f53: DUP5 00001f54: MLOAD 00001f55: DUP2 00001f56: SLOAD 00001f57: PUSH1 0x01 00001f59: PUSH1 0x01 00001f5b: PUSH1 0xa0 00001f5d: SHL 00001f5e: SUB 00001f5f: NOT 00001f60: AND 00001f61: SWAP7 00001f62: AND 00001f63: SWAP6 00001f64: SWAP1 00001f65: SWAP6 00001f66: OR 00001f67: DUP6 00001f68: SSTORE 00001f69: SWAP3 00001f6a: DUP3 00001f6b: ADD 00001f6c: MLOAD 00001f6d: PUSH1 0x01 00001f6f: SWAP5 00001f70: DUP6 00001f71: ADD 00001f72: SSTORE 00001f73: PUSH2 0x0106 00001f76: SWAP1 00001f77: SWAP2 00001f78: MSTORE 00001f79: KECCAK256 00001f7a: DUP1 00001f7b: SLOAD 00001f7c: PUSH1 0xff 00001f7e: NOT 00001f7f: AND 00001f80: SWAP1 00001f81: SWAP2 00001f82: OR 00001f83: SWAP1 00001f84: SSTORE 00001f85: JUMPDEST 00001f86: PUSH2 0x1c16 00001f89: DUP11 00001f8a: DUP14 00001f8b: DUP12 00001f8c: DUP12 00001f8d: DUP16 00001f8e: PUSH2 0x2e35 00001f91: JUMP 00001f92: JUMPDEST 00001f93: PUSH2 0x1f9e 00001f96: DUP11 00001f97: DUP14 00001f98: DUP12 00001f99: DUP15 00001f9a: PUSH2 0x2ef1 00001f9d: JUMP 00001f9e: JUMPDEST 00001f9f: DUP11 00001fa0: PUSH1 0x01 00001fa2: PUSH1 0x01 00001fa4: PUSH1 0xa0 00001fa6: SHL 00001fa7: SUB 00001fa8: AND 00001fa9: DUP13 00001faa: PUSH1 0x01 00001fac: PUSH1 0x01 00001fae: PUSH1 0xa0 00001fb0: SHL 00001fb1: SUB 00001fb2: AND 00001fb3: PUSH32 0x91e6edd0a13d88402389ca421cdea8b8c5e72d7b05706b6488c7d0008f853a0d 00001fd4: DUP13 00001fd5: DUP13 00001fd6: PUSH1 0x00 00001fd8: DUP2 00001fd9: MLOAD 00001fda: DUP2 00001fdb: LT 00001fdc: PUSH2 0x1ff5 00001fdf: JUMPI 00001fe0: PUSH4 0x4e487b71 00001fe5: PUSH1 0xe0 00001fe7: SHL 00001fe8: PUSH1 0x00 00001fea: MSTORE 00001feb: PUSH1 0x32 00001fed: PUSH1 0x04 00001fef: MSTORE 00001ff0: PUSH1 0x24 00001ff2: PUSH1 0x00 00001ff4: REVERT 00001ff5: JUMPDEST 00001ff6: PUSH1 0x20 00001ff8: MUL 00001ff9: PUSH1 0x20 00001ffb: ADD 00001ffc: ADD 00001ffd: MLOAD 00001ffe: DUP14 00001fff: PUSH1 0x01 00002001: DUP2 00002002: MLOAD 00002003: DUP2 00002004: LT 00002005: PUSH2 0x201e 00002008: JUMPI 00002009: PUSH4 0x4e487b71 0000200e: PUSH1 0xe0 00002010: SHL 00002011: PUSH1 0x00 00002013: MSTORE 00002014: PUSH1 0x32 00002016: PUSH1 0x04 00002018: MSTORE 00002019: PUSH1 0x24 0000201b: PUSH1 0x00 0000201d: REVERT 0000201e: JUMPDEST 0000201f: PUSH1 0x20 00002021: MUL 00002022: PUSH1 0x20 00002024: ADD 00002025: ADD 00002026: MLOAD 00002027: PUSH1 0xfc 00002029: SLOAD 0000202a: DUP16 0000202b: PUSH1 0x03 0000202d: DUP2 0000202e: MLOAD 0000202f: DUP2 00002030: LT 00002031: PUSH2 0x204a 00002034: JUMPI 00002035: PUSH4 0x4e487b71 0000203a: PUSH1 0xe0 0000203c: SHL 0000203d: PUSH1 0x00 0000203f: MSTORE 00002040: PUSH1 0x32 00002042: PUSH1 0x04 00002044: MSTORE 00002045: PUSH1 0x24 00002047: PUSH1 0x00 00002049: REVERT 0000204a: JUMPDEST 0000204b: PUSH1 0x20 0000204d: SWAP1 0000204e: DUP2 0000204f: MUL 00002050: SWAP2 00002051: SWAP1 00002052: SWAP2 00002053: ADD 00002054: DUP2 00002055: ADD 00002056: MLOAD 00002057: PUSH1 0x40 00002059: DUP1 0000205a: MLOAD 0000205b: SWAP7 0000205c: DUP8 0000205d: MSTORE 0000205e: SWAP2 0000205f: DUP7 00002060: ADD 00002061: SWAP5 00002062: SWAP1 00002063: SWAP5 00002064: MSTORE 00002065: DUP5 00002066: ADD 00002067: SWAP2 00002068: SWAP1 00002069: SWAP2 0000206a: MSTORE 0000206b: PUSH1 0x60 0000206d: DUP4 0000206e: ADD 0000206f: MSTORE 00002070: PUSH1 0x80 00002072: DUP3 00002073: ADD 00002074: MSTORE 00002075: PUSH1 0xa0 00002077: DUP2 00002078: ADD 00002079: DUP6 0000207a: SWAP1 0000207b: MSTORE 0000207c: PUSH1 0xc0 0000207e: ADD 0000207f: PUSH1 0x40 00002081: MLOAD 00002082: DUP1 00002083: SWAP2 00002084: SUB 00002085: SWAP1 00002086: LOG3 00002087: JUMPDEST 00002088: POP 00002089: POP 0000208a: PUSH1 0x01 0000208c: PUSH1 0xc9 0000208e: SSTORE 0000208f: POP 00002090: POP 00002091: POP 00002092: POP 00002093: POP 00002094: POP 00002095: POP 00002096: POP 00002097: POP 00002098: POP 00002099: JUMP 0000209a: JUMPDEST 0000209b: PUSH1 0x97 0000209d: SLOAD 0000209e: PUSH1 0x01 000020a0: PUSH1 0x01 000020a2: PUSH1 0xa0 000020a4: SHL 000020a5: SUB 000020a6: AND 000020a7: CALLER 000020a8: EQ 000020a9: PUSH2 0x20c4 000020ac: JUMPI 000020ad: PUSH1 0x40 000020af: MLOAD 000020b0: PUSH3 0x461bcd 000020b4: PUSH1 0xe5 000020b6: SHL 000020b7: DUP2 000020b8: MSTORE 000020b9: PUSH1 0x04 000020bb: ADD 000020bc: PUSH2 0x08ef 000020bf: SWAP1 000020c0: PUSH2 0x3f91 000020c3: JUMP 000020c4: JUMPDEST 000020c5: PUSH1 0x01 000020c7: PUSH1 0x01 000020c9: PUSH1 0xa0 000020cb: SHL 000020cc: SUB 000020cd: DUP2 000020ce: AND 000020cf: PUSH1 0x00 000020d1: SWAP1 000020d2: DUP2 000020d3: MSTORE 000020d4: PUSH2 0x0100 000020d7: PUSH1 0x20 000020d9: MSTORE 000020da: PUSH1 0x40 000020dc: SWAP1 000020dd: KECCAK256 000020de: SLOAD 000020df: PUSH1 0xff 000020e1: AND 000020e2: ISZERO 000020e3: PUSH2 0x2121 000020e6: JUMPI 000020e7: PUSH1 0x40 000020e9: MLOAD 000020ea: PUSH3 0x461bcd 000020ee: PUSH1 0xe5 000020f0: SHL 000020f1: DUP2 000020f2: MSTORE 000020f3: PUSH1 0x20 000020f5: PUSH1 0x04 000020f7: DUP3 000020f8: ADD 000020f9: MSTORE 000020fa: PUSH1 0x10 000020fc: PUSH1 0x24 000020fe: DUP3 000020ff: ADD 00002100: MSTORE 00002101: PUSH16 0x30b63932b0b23c9030b8383937bb32b9 00002112: PUSH1 0x81 00002114: SHL 00002115: PUSH1 0x44 00002117: DUP3 00002118: ADD 00002119: MSTORE 0000211a: PUSH1 0x64 0000211c: ADD 0000211d: PUSH2 0x08ef 00002120: JUMP 00002121: JUMPDEST 00002122: PUSH1 0x01 00002124: PUSH1 0x01 00002126: PUSH1 0xa0 00002128: SHL 00002129: SUB 0000212a: DUP2 0000212b: AND 0000212c: PUSH2 0x216a 0000212f: JUMPI 00002130: PUSH1 0x40 00002132: MLOAD 00002133: PUSH3 0x461bcd 00002137: PUSH1 0xe5 00002139: SHL 0000213a: DUP2 0000213b: MSTORE 0000213c: PUSH1 0x20 0000213e: PUSH1 0x04 00002140: DUP3 00002141: ADD 00002142: MSTORE 00002143: PUSH1 0x10 00002145: PUSH1 0x24 00002147: DUP3 00002148: ADD 00002149: MSTORE 0000214a: PUSH16 0x6e6f6e207a65726f2061646472657373 0000215b: PUSH1 0x80 0000215d: SHL 0000215e: PUSH1 0x44 00002160: DUP3 00002161: ADD 00002162: MSTORE 00002163: PUSH1 0x64 00002165: ADD 00002166: PUSH2 0x08ef 00002169: JUMP 0000216a: JUMPDEST 0000216b: PUSH1 0xff 0000216d: DUP1 0000216e: SLOAD 0000216f: PUSH1 0x01 00002171: DUP2 00002172: DUP2 00002173: ADD 00002174: SWAP1 00002175: SWAP3 00002176: SSTORE 00002177: PUSH32 0xe08ec2af2cfc251225e1968fd6ca21e4044f129bffa95bac3503be8bdb30a367 00002198: ADD 00002199: DUP1 0000219a: SLOAD 0000219b: PUSH1 0x01 0000219d: PUSH1 0x01 0000219f: PUSH1 0xa0 000021a1: SHL 000021a2: SUB 000021a3: SWAP1 000021a4: SWAP4 000021a5: AND 000021a6: PUSH1 0x01 000021a8: PUSH1 0x01 000021aa: PUSH1 0xa0 000021ac: SHL 000021ad: SUB 000021ae: NOT 000021af: SWAP1 000021b0: SWAP4 000021b1: AND 000021b2: DUP4 000021b3: OR 000021b4: SWAP1 000021b5: SSTORE 000021b6: PUSH1 0x00 000021b8: SWAP2 000021b9: DUP3 000021ba: MSTORE 000021bb: PUSH2 0x0100 000021be: PUSH1 0x20 000021c0: MSTORE 000021c1: PUSH1 0x40 000021c3: SWAP1 000021c4: SWAP2 000021c5: KECCAK256 000021c6: DUP1 000021c7: SLOAD 000021c8: PUSH1 0xff 000021ca: NOT 000021cb: AND 000021cc: SWAP1 000021cd: SWAP2 000021ce: OR 000021cf: SWAP1 000021d0: SSTORE 000021d1: JUMP 000021d2: JUMPDEST 000021d3: PUSH1 0x60 000021d5: PUSH1 0xff 000021d7: DUP1 000021d8: SLOAD 000021d9: DUP1 000021da: PUSH1 0x20 000021dc: MUL 000021dd: PUSH1 0x20 000021df: ADD 000021e0: PUSH1 0x40 000021e2: MLOAD 000021e3: SWAP1 000021e4: DUP2 000021e5: ADD 000021e6: PUSH1 0x40 000021e8: MSTORE 000021e9: DUP1 000021ea: SWAP3 000021eb: SWAP2 000021ec: SWAP1 000021ed: DUP2 000021ee: DUP2 000021ef: MSTORE 000021f0: PUSH1 0x20 000021f2: ADD 000021f3: DUP3 000021f4: DUP1 000021f5: SLOAD 000021f6: DUP1 000021f7: ISZERO 000021f8: PUSH2 0x222a 000021fb: JUMPI 000021fc: PUSH1 0x20 000021fe: MUL 000021ff: DUP3 00002200: ADD 00002201: SWAP2 00002202: SWAP1 00002203: PUSH1 0x00 00002205: MSTORE 00002206: PUSH1 0x20 00002208: PUSH1 0x00 0000220a: KECCAK256 0000220b: SWAP1 0000220c: JUMPDEST 0000220d: DUP2 0000220e: SLOAD 0000220f: PUSH1 0x01 00002211: PUSH1 0x01 00002213: PUSH1 0xa0 00002215: SHL 00002216: SUB 00002217: AND 00002218: DUP2 00002219: MSTORE 0000221a: PUSH1 0x01 0000221c: SWAP1 0000221d: SWAP2 0000221e: ADD 0000221f: SWAP1 00002220: PUSH1 0x20 00002222: ADD 00002223: DUP1 00002224: DUP4 00002225: GT 00002226: PUSH2 0x220c 00002229: JUMPI 0000222a: JUMPDEST 0000222b: POP 0000222c: POP 0000222d: POP 0000222e: POP 0000222f: POP 00002230: SWAP1 00002231: POP 00002232: SWAP1 00002233: JUMP 00002234: JUMPDEST 00002235: PUSH1 0x97 00002237: SLOAD 00002238: PUSH1 0x01 0000223a: PUSH1 0x01 0000223c: PUSH1 0xa0 0000223e: SHL 0000223f: SUB 00002240: AND 00002241: CALLER 00002242: EQ 00002243: PUSH2 0x225e 00002246: JUMPI 00002247: PUSH1 0x40 00002249: MLOAD 0000224a: PUSH3 0x461bcd 0000224e: PUSH1 0xe5 00002250: SHL 00002251: DUP2 00002252: MSTORE 00002253: PUSH1 0x04 00002255: ADD 00002256: PUSH2 0x08ef 00002259: SWAP1 0000225a: PUSH2 0x3f91 0000225d: JUMP 0000225e: JUMPDEST 0000225f: PUSH1 0x02 00002261: DUP2 00002262: LT 00002263: ISZERO 00002264: PUSH2 0x22a3 00002267: JUMPI 00002268: PUSH1 0x40 0000226a: MLOAD 0000226b: PUSH3 0x461bcd 0000226f: PUSH1 0xe5 00002271: SHL 00002272: DUP2 00002273: MSTORE 00002274: PUSH1 0x20 00002276: PUSH1 0x04 00002278: DUP3 00002279: ADD 0000227a: MSTORE 0000227b: PUSH1 0x11 0000227d: PUSH1 0x24 0000227f: DUP3 00002280: ADD 00002281: MSTORE 00002282: PUSH17 0x10b6b4b71039b2ba1030b8383937bb32b9 00002294: PUSH1 0x79 00002296: SHL 00002297: PUSH1 0x44 00002299: DUP3 0000229a: ADD 0000229b: MSTORE 0000229c: PUSH1 0x64 0000229e: ADD 0000229f: PUSH2 0x08ef 000022a2: JUMP 000022a3: JUMPDEST 000022a4: PUSH2 0x0109 000022a7: SSTORE 000022a8: JUMP 000022a9: JUMPDEST 000022aa: PUSH1 0x01 000022ac: PUSH1 0x01 000022ae: PUSH1 0xa0 000022b0: SHL 000022b1: SUB 000022b2: DUP2 000022b3: AND 000022b4: PUSH1 0x00 000022b6: SWAP1 000022b7: DUP2 000022b8: MSTORE 000022b9: PUSH2 0x0102 000022bc: PUSH1 0x20 000022be: SWAP1 000022bf: DUP2 000022c0: MSTORE 000022c1: PUSH1 0x40 000022c3: SWAP2 000022c4: DUP3 000022c5: SWAP1 000022c6: KECCAK256 000022c7: DUP1 000022c8: SLOAD 000022c9: DUP4 000022ca: MLOAD 000022cb: DUP2 000022cc: DUP5 000022cd: MUL 000022ce: DUP2 000022cf: ADD 000022d0: DUP5 000022d1: ADD 000022d2: SWAP1 000022d3: SWAP5 000022d4: MSTORE 000022d5: DUP1 000022d6: DUP5 000022d7: MSTORE 000022d8: PUSH1 0x60 000022da: SWAP4 000022db: SWAP3 000022dc: DUP4 000022dd: ADD 000022de: DUP3 000022df: DUP3 000022e0: DUP1 000022e1: ISZERO 000022e2: PUSH2 0x230a 000022e5: JUMPI 000022e6: PUSH1 0x20 000022e8: MUL 000022e9: DUP3 000022ea: ADD 000022eb: SWAP2 000022ec: SWAP1 000022ed: PUSH1 0x00 000022ef: MSTORE 000022f0: PUSH1 0x20 000022f2: PUSH1 0x00 000022f4: KECCAK256 000022f5: SWAP1 000022f6: JUMPDEST 000022f7: DUP2 000022f8: SLOAD 000022f9: DUP2 000022fa: MSTORE 000022fb: PUSH1 0x20 000022fd: ADD 000022fe: SWAP1 000022ff: PUSH1 0x01 00002301: ADD 00002302: SWAP1 00002303: DUP1 00002304: DUP4 00002305: GT 00002306: PUSH2 0x22f6 00002309: JUMPI 0000230a: JUMPDEST 0000230b: POP 0000230c: POP 0000230d: POP 0000230e: POP 0000230f: POP 00002310: SWAP1 00002311: POP 00002312: JUMPDEST 00002313: SWAP2 00002314: SWAP1 00002315: POP 00002316: JUMP 00002317: JUMPDEST 00002318: PUSH1 0x97 0000231a: SLOAD 0000231b: PUSH1 0x01 0000231d: PUSH1 0x01 0000231f: PUSH1 0xa0 00002321: SHL 00002322: SUB 00002323: AND 00002324: CALLER 00002325: EQ 00002326: PUSH2 0x2341 00002329: JUMPI 0000232a: PUSH1 0x40 0000232c: MLOAD 0000232d: PUSH3 0x461bcd 00002331: PUSH1 0xe5 00002333: SHL 00002334: DUP2 00002335: MSTORE 00002336: PUSH1 0x04 00002338: ADD 00002339: PUSH2 0x08ef 0000233c: SWAP1 0000233d: PUSH2 0x3f91 00002340: JUMP 00002341: JUMPDEST 00002342: PUSH2 0x010a 00002345: DUP1 00002346: SLOAD 00002347: PUSH1 0x01 00002349: PUSH1 0x01 0000234b: PUSH1 0xa0 0000234d: SHL 0000234e: SUB 0000234f: NOT 00002350: AND 00002351: PUSH1 0x01 00002353: PUSH1 0x01 00002355: PUSH1 0xa0 00002357: SHL 00002358: SUB 00002359: SWAP3 0000235a: SWAP1 0000235b: SWAP3 0000235c: AND 0000235d: SWAP2 0000235e: SWAP1 0000235f: SWAP2 00002360: OR 00002361: SWAP1 00002362: SSTORE 00002363: JUMP 00002364: JUMPDEST 00002365: PUSH1 0x97 00002367: SLOAD 00002368: PUSH1 0x01 0000236a: PUSH1 0x01 0000236c: PUSH1 0xa0 0000236e: SHL 0000236f: SUB 00002370: AND 00002371: CALLER 00002372: EQ 00002373: PUSH2 0x238e 00002376: JUMPI 00002377: PUSH1 0x40 00002379: MLOAD 0000237a: PUSH3 0x461bcd 0000237e: PUSH1 0xe5 00002380: SHL 00002381: DUP2 00002382: MSTORE 00002383: PUSH1 0x04 00002385: ADD 00002386: PUSH2 0x08ef 00002389: SWAP1 0000238a: PUSH2 0x4008 0000238d: JUMP 0000238e: JUMPDEST 0000238f: PUSH1 0x01 00002391: PUSH1 0x01 00002393: PUSH1 0xa0 00002395: SHL 00002396: SUB 00002397: DUP2 00002398: AND 00002399: PUSH2 0x23f3 0000239c: JUMPI 0000239d: PUSH1 0x40 0000239f: MLOAD 000023a0: PUSH3 0x461bcd 000023a4: PUSH1 0xe5 000023a6: SHL 000023a7: DUP2 000023a8: MSTORE 000023a9: PUSH1 0x20 000023ab: PUSH1 0x04 000023ad: DUP3 000023ae: ADD 000023af: MSTORE 000023b0: PUSH1 0x26 000023b2: PUSH1 0x24 000023b4: DUP3 000023b5: ADD 000023b6: MSTORE 000023b7: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 000023d8: PUSH1 0x44 000023da: DUP3 000023db: ADD 000023dc: MSTORE 000023dd: PUSH6 0x646472657373 000023e4: PUSH1 0xd0 000023e6: SHL 000023e7: PUSH1 0x64 000023e9: DUP3 000023ea: ADD 000023eb: MSTORE 000023ec: PUSH1 0x84 000023ee: ADD 000023ef: PUSH2 0x08ef 000023f2: JUMP 000023f3: JUMPDEST 000023f4: PUSH2 0x0d31 000023f7: DUP2 000023f8: PUSH2 0x29f1 000023fb: JUMP 000023fc: JUMPDEST 000023fd: PUSH1 0x97 000023ff: SLOAD 00002400: PUSH1 0x01 00002402: PUSH1 0x01 00002404: PUSH1 0xa0 00002406: SHL 00002407: SUB 00002408: AND 00002409: CALLER 0000240a: EQ 0000240b: PUSH2 0x2426 0000240e: JUMPI 0000240f: PUSH1 0x40 00002411: MLOAD 00002412: PUSH3 0x461bcd 00002416: PUSH1 0xe5 00002418: SHL 00002419: DUP2 0000241a: MSTORE 0000241b: PUSH1 0x04 0000241d: ADD 0000241e: PUSH2 0x08ef 00002421: SWAP1 00002422: PUSH2 0x3f91 00002425: JUMP 00002426: JUMPDEST 00002427: PUSH1 0x00 00002429: SWAP2 0000242a: DUP3 0000242b: MSTORE 0000242c: PUSH2 0x0101 0000242f: PUSH1 0x20 00002431: MSTORE 00002432: PUSH1 0x40 00002434: SWAP1 00002435: SWAP2 00002436: KECCAK256 00002437: DUP1 00002438: SLOAD 00002439: PUSH1 0xff 0000243b: NOT 0000243c: AND 0000243d: SWAP2 0000243e: ISZERO 0000243f: ISZERO 00002440: SWAP2 00002441: SWAP1 00002442: SWAP2 00002443: OR 00002444: SWAP1 00002445: SSTORE 00002446: JUMP 00002447: JUMPDEST 00002448: PUSH1 0xfd 0000244a: SLOAD 0000244b: PUSH1 0x01 0000244d: PUSH1 0x01 0000244f: PUSH1 0xa0 00002451: SHL 00002452: SUB 00002453: DUP5 00002454: DUP2 00002455: AND 00002456: SWAP2 00002457: AND 00002458: EQ 00002459: ISZERO 0000245a: PUSH2 0x24a9 0000245d: JUMPI 0000245e: DUP1 0000245f: CALLVALUE 00002460: EQ 00002461: PUSH2 0x24a4 00002464: JUMPI 00002465: PUSH1 0x40 00002467: MLOAD 00002468: PUSH3 0x461bcd 0000246c: PUSH1 0xe5 0000246e: SHL 0000246f: DUP2 00002470: MSTORE 00002471: PUSH1 0x20 00002473: PUSH1 0x04 00002475: DUP3 00002476: ADD 00002477: MSTORE 00002478: PUSH1 0x15 0000247a: PUSH1 0x24 0000247c: DUP3 0000247d: ADD 0000247e: MSTORE 0000247f: PUSH21 0x1a5b9d985b1a5908189c9a5919d948185b5bdd5b9d 00002495: PUSH1 0x5a 00002497: SHL 00002498: PUSH1 0x44 0000249a: DUP3 0000249b: ADD 0000249c: MSTORE 0000249d: PUSH1 0x64 0000249f: ADD 000024a0: PUSH2 0x08ef 000024a3: JUMP 000024a4: JUMPDEST 000024a5: PUSH2 0x10fd 000024a8: JUMP 000024a9: JUMPDEST 000024aa: PUSH1 0x40 000024ac: MLOAD 000024ad: PUSH4 0x70a08231 000024b2: PUSH1 0xe0 000024b4: SHL 000024b5: DUP2 000024b6: MSTORE 000024b7: ADDRESS 000024b8: PUSH1 0x04 000024ba: DUP3 000024bb: ADD 000024bc: MSTORE 000024bd: DUP4 000024be: SWAP1 000024bf: PUSH1 0x00 000024c1: SWAP1 000024c2: PUSH1 0x01 000024c4: PUSH1 0x01 000024c6: PUSH1 0xa0 000024c8: SHL 000024c9: SUB 000024ca: DUP4 000024cb: AND 000024cc: SWAP1 000024cd: PUSH4 0x70a08231 000024d2: SWAP1 000024d3: PUSH1 0x24 000024d5: ADD 000024d6: PUSH1 0x20 000024d8: PUSH1 0x40 000024da: MLOAD 000024db: DUP1 000024dc: DUP4 000024dd: SUB 000024de: DUP2 000024df: DUP7 000024e0: DUP1 000024e1: EXTCODESIZE 000024e2: ISZERO 000024e3: DUP1 000024e4: ISZERO 000024e5: PUSH2 0x24ed 000024e8: JUMPI 000024e9: PUSH1 0x00 000024eb: DUP1 000024ec: REVERT 000024ed: JUMPDEST 000024ee: POP 000024ef: GAS 000024f0: STATICCALL 000024f1: ISZERO 000024f2: DUP1 000024f3: ISZERO 000024f4: PUSH2 0x2501 000024f7: JUMPI 000024f8: RETURNDATASIZE 000024f9: PUSH1 0x00 000024fb: DUP1 000024fc: RETURNDATACOPY 000024fd: RETURNDATASIZE 000024fe: PUSH1 0x00 00002500: REVERT 00002501: JUMPDEST 00002502: POP 00002503: POP 00002504: POP 00002505: POP 00002506: PUSH1 0x40 00002508: MLOAD 00002509: RETURNDATASIZE 0000250a: PUSH1 0x1f 0000250c: NOT 0000250d: PUSH1 0x1f 0000250f: DUP3 00002510: ADD 00002511: AND 00002512: DUP3 00002513: ADD 00002514: DUP1 00002515: PUSH1 0x40 00002517: MSTORE 00002518: POP 00002519: DUP2 0000251a: ADD 0000251b: SWAP1 0000251c: PUSH2 0x2525 0000251f: SWAP2 00002520: SWAP1 00002521: PUSH2 0x3c59 00002524: JUMP 00002525: JUMPDEST 00002526: SWAP1 00002527: POP 00002528: PUSH2 0x253c 0000252b: PUSH1 0x01 0000252d: PUSH1 0x01 0000252f: PUSH1 0xa0 00002531: SHL 00002532: SUB 00002533: DUP4 00002534: AND 00002535: DUP6 00002536: ADDRESS 00002537: DUP7 00002538: PUSH2 0x2f37 0000253b: JUMP 0000253c: JUMPDEST 0000253d: PUSH1 0x40 0000253f: MLOAD 00002540: PUSH4 0x70a08231 00002545: PUSH1 0xe0 00002547: SHL 00002548: DUP2 00002549: MSTORE 0000254a: ADDRESS 0000254b: PUSH1 0x04 0000254d: DUP3 0000254e: ADD 0000254f: MSTORE 00002550: DUP4 00002551: SWAP1 00002552: PUSH2 0x25c1 00002555: SWAP1 00002556: DUP4 00002557: SWAP1 00002558: PUSH1 0x01 0000255a: PUSH1 0x01 0000255c: PUSH1 0xa0 0000255e: SHL 0000255f: SUB 00002560: DUP7 00002561: AND 00002562: SWAP1 00002563: PUSH4 0x70a08231 00002568: SWAP1 00002569: PUSH1 0x24 0000256b: ADD 0000256c: PUSH1 0x20 0000256e: PUSH1 0x40 00002570: MLOAD 00002571: DUP1 00002572: DUP4 00002573: SUB 00002574: DUP2 00002575: DUP7 00002576: DUP1 00002577: EXTCODESIZE 00002578: ISZERO 00002579: DUP1 0000257a: ISZERO 0000257b: PUSH2 0x2583 0000257e: JUMPI 0000257f: PUSH1 0x00 00002581: DUP1 00002582: REVERT 00002583: JUMPDEST 00002584: POP 00002585: GAS 00002586: STATICCALL 00002587: ISZERO 00002588: DUP1 00002589: ISZERO 0000258a: PUSH2 0x2597 0000258d: JUMPI 0000258e: RETURNDATASIZE 0000258f: PUSH1 0x00 00002591: DUP1 00002592: RETURNDATACOPY 00002593: RETURNDATASIZE 00002594: PUSH1 0x00 00002596: REVERT 00002597: JUMPDEST 00002598: POP 00002599: POP 0000259a: POP 0000259b: POP 0000259c: PUSH1 0x40 0000259e: MLOAD 0000259f: RETURNDATASIZE 000025a0: PUSH1 0x1f 000025a2: NOT 000025a3: PUSH1 0x1f 000025a5: DUP3 000025a6: ADD 000025a7: AND 000025a8: DUP3 000025a9: ADD 000025aa: DUP1 000025ab: PUSH1 0x40 000025ad: MSTORE 000025ae: POP 000025af: DUP2 000025b0: ADD 000025b1: SWAP1 000025b2: PUSH2 0x25bb 000025b5: SWAP2 000025b6: SWAP1 000025b7: PUSH2 0x3c59 000025ba: JUMP 000025bb: JUMPDEST 000025bc: SWAP1 000025bd: PUSH2 0x2fa2 000025c0: JUMP 000025c1: JUMPDEST 000025c2: EQ 000025c3: PUSH2 0x25ff 000025c6: JUMPI 000025c7: PUSH1 0x40 000025c9: MLOAD 000025ca: PUSH3 0x461bcd 000025ce: PUSH1 0xe5 000025d0: SHL 000025d1: DUP2 000025d2: MSTORE 000025d3: PUSH1 0x20 000025d5: PUSH1 0x04 000025d7: DUP3 000025d8: ADD 000025d9: MSTORE 000025da: PUSH1 0x0e 000025dc: PUSH1 0x24 000025de: DUP3 000025df: ADD 000025e0: MSTORE 000025e1: PUSH14 0x217472616e736665722066726f6d 000025f0: PUSH1 0x90 000025f2: SHL 000025f3: PUSH1 0x44 000025f5: DUP3 000025f6: ADD 000025f7: MSTORE 000025f8: PUSH1 0x64 000025fa: ADD 000025fb: PUSH2 0x08ef 000025fe: JUMP 000025ff: JUMPDEST 00002600: POP 00002601: POP 00002602: POP 00002603: POP 00002604: POP 00002605: JUMP 00002606: JUMPDEST 00002607: PUSH1 0xfd 00002609: SLOAD 0000260a: PUSH1 0x01 0000260c: PUSH1 0x01 0000260e: PUSH1 0xa0 00002610: SHL 00002611: SUB 00002612: DUP6 00002613: DUP2 00002614: AND 00002615: SWAP2 00002616: AND 00002617: EQ 00002618: ISZERO 00002619: PUSH2 0x264f 0000261c: JUMPI 0000261d: PUSH2 0x262f 00002620: PUSH1 0x01 00002622: PUSH1 0x01 00002624: PUSH1 0xa0 00002626: SHL 00002627: SUB 00002628: DUP5 00002629: AND 0000262a: DUP4 0000262b: PUSH2 0x2fb5 0000262e: JUMP 0000262f: JUMPDEST 00002630: PUSH2 0x264a 00002633: DUP2 00002634: PUSH2 0x263b 00002637: PUSH2 0x30ce 0000263a: JUMP 0000263b: JUMPDEST 0000263c: PUSH1 0x01 0000263e: PUSH1 0x01 00002640: PUSH1 0xa0 00002642: SHL 00002643: SUB 00002644: AND 00002645: SWAP1 00002646: PUSH2 0x2fb5 00002649: JUMP 0000264a: JUMPDEST 0000264b: PUSH2 0x105b 0000264e: JUMP 0000264f: JUMPDEST 00002650: PUSH1 0x40 00002652: MLOAD 00002653: PUSH4 0x70a08231 00002658: PUSH1 0xe0 0000265a: SHL 0000265b: DUP2 0000265c: MSTORE 0000265d: ADDRESS 0000265e: PUSH1 0x04 00002660: DUP3 00002661: ADD 00002662: MSTORE 00002663: DUP5 00002664: SWAP1 00002665: PUSH1 0x00 00002667: SWAP1 00002668: PUSH1 0x01 0000266a: PUSH1 0x01 0000266c: PUSH1 0xa0 0000266e: SHL 0000266f: SUB 00002670: DUP4 00002671: AND 00002672: SWAP1 00002673: PUSH4 0x70a08231 00002678: SWAP1 00002679: PUSH1 0x24 0000267b: ADD 0000267c: PUSH1 0x20 0000267e: PUSH1 0x40 00002680: MLOAD 00002681: DUP1 00002682: DUP4 00002683: SUB 00002684: DUP2 00002685: DUP7 00002686: DUP1 00002687: EXTCODESIZE 00002688: ISZERO 00002689: DUP1 0000268a: ISZERO 0000268b: PUSH2 0x2693 0000268e: JUMPI 0000268f: PUSH1 0x00 00002691: DUP1 00002692: REVERT 00002693: JUMPDEST 00002694: POP 00002695: GAS 00002696: STATICCALL 00002697: ISZERO 00002698: DUP1 00002699: ISZERO 0000269a: PUSH2 0x26a7 0000269d: JUMPI 0000269e: RETURNDATASIZE 0000269f: PUSH1 0x00 000026a1: DUP1 000026a2: RETURNDATACOPY 000026a3: RETURNDATASIZE 000026a4: PUSH1 0x00 000026a6: REVERT 000026a7: JUMPDEST 000026a8: POP 000026a9: POP 000026aa: POP 000026ab: POP 000026ac: PUSH1 0x40 000026ae: MLOAD 000026af: RETURNDATASIZE 000026b0: PUSH1 0x1f 000026b2: NOT 000026b3: PUSH1 0x1f 000026b5: DUP3 000026b6: ADD 000026b7: AND 000026b8: DUP3 000026b9: ADD 000026ba: DUP1 000026bb: PUSH1 0x40 000026bd: MSTORE 000026be: POP 000026bf: DUP2 000026c0: ADD 000026c1: SWAP1 000026c2: PUSH2 0x26cb 000026c5: SWAP2 000026c6: SWAP1 000026c7: PUSH2 0x3c59 000026ca: JUMP 000026cb: JUMPDEST 000026cc: SWAP1 000026cd: POP 000026ce: DUP4 000026cf: ISZERO 000026d0: PUSH2 0x26e7 000026d3: JUMPI 000026d4: PUSH2 0x26e7 000026d7: PUSH1 0x01 000026d9: PUSH1 0x01 000026db: PUSH1 0xa0 000026dd: SHL 000026de: SUB 000026df: DUP4 000026e0: AND 000026e1: DUP7 000026e2: DUP7 000026e3: PUSH2 0x3107 000026e6: JUMP 000026e7: JUMPDEST 000026e8: DUP3 000026e9: ISZERO 000026ea: PUSH2 0x2709 000026ed: JUMPI 000026ee: PUSH2 0x2709 000026f1: PUSH2 0x26f8 000026f4: PUSH2 0x30ce 000026f7: JUMP 000026f8: JUMPDEST 000026f9: PUSH1 0x01 000026fb: PUSH1 0x01 000026fd: PUSH1 0xa0 000026ff: SHL 00002700: SUB 00002701: DUP5 00002702: AND 00002703: SWAP1 00002704: DUP6 00002705: PUSH2 0x3107 00002708: JUMP 00002709: JUMPDEST 0000270a: PUSH2 0x2713 0000270d: DUP4 0000270e: DUP6 0000270f: PUSH2 0x4092 00002712: JUMP 00002713: JUMPDEST 00002714: PUSH1 0x40 00002716: MLOAD 00002717: PUSH4 0x70a08231 0000271c: PUSH1 0xe0 0000271e: SHL 0000271f: DUP2 00002720: MSTORE 00002721: ADDRESS 00002722: PUSH1 0x04 00002724: DUP3 00002725: ADD 00002726: MSTORE 00002727: PUSH2 0x2795 0000272a: SWAP1 0000272b: PUSH1 0x01 0000272d: PUSH1 0x01 0000272f: PUSH1 0xa0 00002731: SHL 00002732: SUB 00002733: DUP6 00002734: AND 00002735: SWAP1 00002736: PUSH4 0x70a08231 0000273b: SWAP1 0000273c: PUSH1 0x24 0000273e: ADD 0000273f: PUSH1 0x20 00002741: PUSH1 0x40 00002743: MLOAD 00002744: DUP1 00002745: DUP4 00002746: SUB 00002747: DUP2 00002748: DUP7 00002749: DUP1 0000274a: EXTCODESIZE 0000274b: ISZERO 0000274c: DUP1 0000274d: ISZERO 0000274e: PUSH2 0x2756 00002751: JUMPI 00002752: PUSH1 0x00 00002754: DUP1 00002755: REVERT 00002756: JUMPDEST 00002757: POP 00002758: GAS 00002759: STATICCALL 0000275a: ISZERO 0000275b: DUP1 0000275c: ISZERO 0000275d: PUSH2 0x276a 00002760: JUMPI 00002761: RETURNDATASIZE 00002762: PUSH1 0x00 00002764: DUP1 00002765: RETURNDATACOPY 00002766: RETURNDATASIZE 00002767: PUSH1 0x00 00002769: REVERT 0000276a: JUMPDEST 0000276b: POP 0000276c: POP 0000276d: POP 0000276e: POP 0000276f: PUSH1 0x40 00002771: MLOAD 00002772: RETURNDATASIZE 00002773: PUSH1 0x1f 00002775: NOT 00002776: PUSH1 0x1f 00002778: DUP3 00002779: ADD 0000277a: AND 0000277b: DUP3 0000277c: ADD 0000277d: DUP1 0000277e: PUSH1 0x40 00002780: MSTORE 00002781: POP 00002782: DUP2 00002783: ADD 00002784: SWAP1 00002785: PUSH2 0x278e 00002788: SWAP2 00002789: SWAP1 0000278a: PUSH2 0x3c59 0000278d: JUMP 0000278e: JUMPDEST 0000278f: DUP4 00002790: SWAP1 00002791: PUSH2 0x2fa2 00002794: JUMP 00002795: JUMPDEST 00002796: EQ 00002797: PUSH2 0x27d1 0000279a: JUMPI 0000279b: PUSH1 0x40 0000279d: MLOAD 0000279e: PUSH3 0x461bcd 000027a2: PUSH1 0xe5 000027a4: SHL 000027a5: DUP2 000027a6: MSTORE 000027a7: PUSH1 0x20 000027a9: PUSH1 0x04 000027ab: DUP3 000027ac: ADD 000027ad: MSTORE 000027ae: PUSH1 0x0c 000027b0: PUSH1 0x24 000027b2: DUP3 000027b3: ADD 000027b4: MSTORE 000027b5: PUSH12 0x217472616e7366657220746f 000027c2: PUSH1 0xa0 000027c4: SHL 000027c5: PUSH1 0x44 000027c7: DUP3 000027c8: ADD 000027c9: MSTORE 000027ca: PUSH1 0x64 000027cc: ADD 000027cd: PUSH2 0x08ef 000027d0: JUMP 000027d1: JUMPDEST 000027d2: POP 000027d3: POP 000027d4: POP 000027d5: POP 000027d6: POP 000027d7: POP 000027d8: JUMP 000027d9: JUMPDEST 000027da: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 000027fb: SLOAD 000027fc: PUSH1 0x01 000027fe: PUSH1 0x01 00002800: PUSH1 0xa0 00002802: SHL 00002803: SUB 00002804: AND 00002805: SWAP1 00002806: JUMP 00002807: JUMPDEST 00002808: PUSH1 0x97 0000280a: SLOAD 0000280b: PUSH1 0x01 0000280d: PUSH1 0x01 0000280f: PUSH1 0xa0 00002811: SHL 00002812: SUB 00002813: AND 00002814: CALLER 00002815: EQ 00002816: PUSH2 0x0d31 00002819: JUMPI 0000281a: PUSH1 0x40 0000281c: MLOAD 0000281d: PUSH3 0x461bcd 00002821: PUSH1 0xe5 00002823: SHL 00002824: DUP2 00002825: MSTORE 00002826: PUSH1 0x04 00002828: ADD 00002829: PUSH2 0x08ef 0000282c: SWAP1 0000282d: PUSH2 0x4008 00002830: JUMP 00002831: JUMPDEST 00002832: PUSH1 0x00 00002834: PUSH2 0x283b 00002837: PUSH2 0x27d9 0000283a: JUMP 0000283b: JUMPDEST 0000283c: SWAP1 0000283d: POP 0000283e: PUSH2 0x2846 00002841: DUP5 00002842: PUSH2 0x3137 00002845: JUMP 00002846: JUMPDEST 00002847: PUSH1 0x00 00002849: DUP4 0000284a: MLOAD 0000284b: GT 0000284c: DUP1 0000284d: PUSH2 0x2853 00002850: JUMPI 00002851: POP 00002852: DUP2 00002853: JUMPDEST 00002854: ISZERO 00002855: PUSH2 0x2864 00002858: JUMPI 00002859: PUSH2 0x2862 0000285c: DUP5 0000285d: DUP5 0000285e: PUSH2 0x31dc 00002861: JUMP 00002862: JUMPDEST 00002863: POP 00002864: JUMPDEST 00002865: PUSH32 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143 00002886: DUP1 00002887: SLOAD 00002888: PUSH1 0xff 0000288a: AND 0000288b: PUSH2 0x25ff 0000288e: JUMPI 0000288f: DUP1 00002890: SLOAD 00002891: PUSH1 0xff 00002893: NOT 00002894: AND 00002895: PUSH1 0x01 00002897: OR 00002898: DUP2 00002899: SSTORE 0000289a: PUSH1 0x40 0000289c: MLOAD 0000289d: PUSH1 0x01 0000289f: PUSH1 0x01 000028a1: PUSH1 0xa0 000028a3: SHL 000028a4: SUB 000028a5: DUP4 000028a6: AND 000028a7: PUSH1 0x24 000028a9: DUP3 000028aa: ADD 000028ab: MSTORE 000028ac: PUSH2 0x28e3 000028af: SWAP1 000028b0: DUP7 000028b1: SWAP1 000028b2: PUSH1 0x44 000028b4: ADD 000028b5: PUSH1 0x40 000028b7: DUP1 000028b8: MLOAD 000028b9: PUSH1 0x1f 000028bb: NOT 000028bc: DUP2 000028bd: DUP5 000028be: SUB 000028bf: ADD 000028c0: DUP2 000028c1: MSTORE 000028c2: SWAP2 000028c3: SWAP1 000028c4: MSTORE 000028c5: PUSH1 0x20 000028c7: DUP2 000028c8: ADD 000028c9: DUP1 000028ca: MLOAD 000028cb: PUSH1 0x01 000028cd: PUSH1 0x01 000028cf: PUSH1 0xe0 000028d1: SHL 000028d2: SUB 000028d3: AND 000028d4: PUSH4 0x1b2ce7f3 000028d9: PUSH1 0xe1 000028db: SHL 000028dc: OR 000028dd: SWAP1 000028de: MSTORE 000028df: PUSH2 0x31dc 000028e2: JUMP 000028e3: JUMPDEST 000028e4: POP 000028e5: DUP1 000028e6: SLOAD 000028e7: PUSH1 0xff 000028e9: NOT 000028ea: AND 000028eb: DUP2 000028ec: SSTORE 000028ed: PUSH2 0x28f4 000028f0: PUSH2 0x27d9 000028f3: JUMP 000028f4: JUMPDEST 000028f5: PUSH1 0x01 000028f7: PUSH1 0x01 000028f9: PUSH1 0xa0 000028fb: SHL 000028fc: SUB 000028fd: AND 000028fe: DUP3 000028ff: PUSH1 0x01 00002901: PUSH1 0x01 00002903: PUSH1 0xa0 00002905: SHL 00002906: SUB 00002907: AND 00002908: EQ 00002909: PUSH2 0x296c 0000290c: JUMPI 0000290d: PUSH1 0x40 0000290f: MLOAD 00002910: PUSH3 0x461bcd 00002914: PUSH1 0xe5 00002916: SHL 00002917: DUP2 00002918: MSTORE 00002919: PUSH1 0x20 0000291b: PUSH1 0x04 0000291d: DUP3 0000291e: ADD 0000291f: MSTORE 00002920: PUSH1 0x2f 00002922: PUSH1 0x24 00002924: DUP3 00002925: ADD 00002926: MSTORE 00002927: PUSH32 0x45524331393637557067726164653a207570677261646520627265616b732066 00002948: PUSH1 0x44 0000294a: DUP3 0000294b: ADD 0000294c: MSTORE 0000294d: PUSH15 0x757274686572207570677261646573 0000295d: PUSH1 0x88 0000295f: SHL 00002960: PUSH1 0x64 00002962: DUP3 00002963: ADD 00002964: MSTORE 00002965: PUSH1 0x84 00002967: ADD 00002968: PUSH2 0x08ef 0000296b: JUMP 0000296c: JUMPDEST 0000296d: PUSH2 0x25ff 00002970: DUP6 00002971: PUSH2 0x32c7 00002974: JUMP 00002975: JUMPDEST 00002976: PUSH1 0x00 00002978: SLOAD 00002979: PUSH2 0x0100 0000297c: SWAP1 0000297d: DIV 0000297e: PUSH1 0xff 00002980: AND 00002981: DUP1 00002982: PUSH2 0x298e 00002985: JUMPI 00002986: POP 00002987: PUSH1 0x00 00002989: SLOAD 0000298a: PUSH1 0xff 0000298c: AND 0000298d: ISZERO 0000298e: JUMPDEST 0000298f: PUSH2 0x29aa 00002992: JUMPI 00002993: PUSH1 0x40 00002995: MLOAD 00002996: PUSH3 0x461bcd 0000299a: PUSH1 0xe5 0000299c: SHL 0000299d: DUP2 0000299e: MSTORE 0000299f: PUSH1 0x04 000029a1: ADD 000029a2: PUSH2 0x08ef 000029a5: SWAP1 000029a6: PUSH2 0x3fba 000029a9: JUMP 000029aa: JUMPDEST 000029ab: PUSH1 0x00 000029ad: SLOAD 000029ae: PUSH2 0x0100 000029b1: SWAP1 000029b2: DIV 000029b3: PUSH1 0xff 000029b5: AND 000029b6: ISZERO 000029b7: DUP1 000029b8: ISZERO 000029b9: PUSH2 0x29d5 000029bc: JUMPI 000029bd: PUSH1 0x00 000029bf: DUP1 000029c0: SLOAD 000029c1: PUSH1 0xff 000029c3: NOT 000029c4: PUSH2 0xff00 000029c7: NOT 000029c8: SWAP1 000029c9: SWAP2 000029ca: AND 000029cb: PUSH2 0x0100 000029ce: OR 000029cf: AND 000029d0: PUSH1 0x01 000029d2: OR 000029d3: SWAP1 000029d4: SSTORE 000029d5: JUMPDEST 000029d6: PUSH2 0x29dd 000029d9: PUSH2 0x3307 000029dc: JUMP 000029dd: JUMPDEST 000029de: DUP1 000029df: ISZERO 000029e0: PUSH2 0x0d31 000029e3: JUMPI 000029e4: PUSH1 0x00 000029e6: DUP1 000029e7: SLOAD 000029e8: PUSH2 0xff00 000029eb: NOT 000029ec: AND 000029ed: SWAP1 000029ee: SSTORE 000029ef: POP 000029f0: JUMP 000029f1: JUMPDEST 000029f2: PUSH1 0x97 000029f4: DUP1 000029f5: SLOAD 000029f6: PUSH1 0x01 000029f8: PUSH1 0x01 000029fa: PUSH1 0xa0 000029fc: SHL 000029fd: SUB 000029fe: DUP4 000029ff: DUP2 00002a00: AND 00002a01: PUSH1 0x01 00002a03: PUSH1 0x01 00002a05: PUSH1 0xa0 00002a07: SHL 00002a08: SUB 00002a09: NOT 00002a0a: DUP4 00002a0b: AND 00002a0c: DUP2 00002a0d: OR 00002a0e: SWAP1 00002a0f: SWAP4 00002a10: SSTORE 00002a11: PUSH1 0x40 00002a13: MLOAD 00002a14: SWAP2 00002a15: AND 00002a16: SWAP2 00002a17: SWAP1 00002a18: DUP3 00002a19: SWAP1 00002a1a: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002a3b: SWAP1 00002a3c: PUSH1 0x00 00002a3e: SWAP1 00002a3f: LOG3 00002a40: POP 00002a41: POP 00002a42: JUMP 00002a43: JUMPDEST 00002a44: PUSH1 0x00 00002a46: PUSH1 0x02 00002a48: PUSH2 0x0109 00002a4b: SLOAD 00002a4c: LT 00002a4d: ISZERO 00002a4e: PUSH2 0x2a8a 00002a51: JUMPI 00002a52: PUSH1 0x40 00002a54: MLOAD 00002a55: PUSH3 0x461bcd 00002a59: PUSH1 0xe5 00002a5b: SHL 00002a5c: DUP2 00002a5d: MSTORE 00002a5e: PUSH1 0x20 00002a60: PUSH1 0x04 00002a62: DUP3 00002a63: ADD 00002a64: MSTORE 00002a65: PUSH1 0x0e 00002a67: PUSH1 0x24 00002a69: DUP3 00002a6a: ADD 00002a6b: MSTORE 00002a6c: PUSH14 0x216d696e20617070726f76657273 00002a7b: PUSH1 0x90 00002a7d: SHL 00002a7e: PUSH1 0x44 00002a80: DUP3 00002a81: ADD 00002a82: MSTORE 00002a83: PUSH1 0x64 00002a85: ADD 00002a86: PUSH2 0x08ef 00002a89: JUMP 00002a8a: JUMPDEST 00002a8b: PUSH2 0x0109 00002a8e: SLOAD 00002a8f: PUSH1 0xff 00002a91: SLOAD 00002a92: LT 00002a93: ISZERO 00002a94: PUSH2 0x2ad0 00002a97: JUMPI 00002a98: PUSH1 0x40 00002a9a: MLOAD 00002a9b: PUSH3 0x461bcd 00002a9f: PUSH1 0xe5 00002aa1: SHL 00002aa2: DUP2 00002aa3: MSTORE 00002aa4: PUSH1 0x20 00002aa6: PUSH1 0x04 00002aa8: DUP3 00002aa9: ADD 00002aaa: MSTORE 00002aab: PUSH1 0x0e 00002aad: PUSH1 0x24 00002aaf: DUP3 00002ab0: ADD 00002ab1: MSTORE 00002ab2: PUSH14 0x216d696e20617070726f76657273 00002ac1: PUSH1 0x90 00002ac3: SHL 00002ac4: PUSH1 0x44 00002ac6: DUP3 00002ac7: ADD 00002ac8: MSTORE 00002ac9: PUSH1 0x64 00002acb: ADD 00002acc: PUSH2 0x08ef 00002acf: JUMP 00002ad0: JUMPDEST 00002ad1: PUSH1 0x00 00002ad3: DUP6 00002ad4: MLOAD 00002ad5: PUSH8 0xffffffffffffffff 00002ade: DUP2 00002adf: GT 00002ae0: ISZERO 00002ae1: PUSH2 0x2afa 00002ae4: JUMPI 00002ae5: PUSH4 0x4e487b71 00002aea: PUSH1 0xe0 00002aec: SHL 00002aed: PUSH1 0x00 00002aef: MSTORE 00002af0: PUSH1 0x41 00002af2: PUSH1 0x04 00002af4: MSTORE 00002af5: PUSH1 0x24 00002af7: PUSH1 0x00 00002af9: REVERT 00002afa: JUMPDEST 00002afb: PUSH1 0x40 00002afd: MLOAD 00002afe: SWAP1 00002aff: DUP1 00002b00: DUP3 00002b01: MSTORE 00002b02: DUP1 00002b03: PUSH1 0x20 00002b05: MUL 00002b06: PUSH1 0x20 00002b08: ADD 00002b09: DUP3 00002b0a: ADD 00002b0b: PUSH1 0x40 00002b0d: MSTORE 00002b0e: DUP1 00002b0f: ISZERO 00002b10: PUSH2 0x2b23 00002b13: JUMPI 00002b14: DUP2 00002b15: PUSH1 0x20 00002b17: ADD 00002b18: PUSH1 0x20 00002b1a: DUP3 00002b1b: MUL 00002b1c: DUP1 00002b1d: CALLDATASIZE 00002b1e: DUP4 00002b1f: CALLDATACOPY 00002b20: ADD 00002b21: SWAP1 00002b22: POP 00002b23: JUMPDEST 00002b24: POP 00002b25: SWAP1 00002b26: POP 00002b27: PUSH1 0x00 00002b29: DUP6 00002b2a: MLOAD 00002b2b: DUP8 00002b2c: MLOAD 00002b2d: EQ 00002b2e: DUP1 00002b2f: ISZERO 00002b30: PUSH2 0x2b3a 00002b33: JUMPI 00002b34: POP 00002b35: DUP5 00002b36: MLOAD 00002b37: DUP7 00002b38: MLOAD 00002b39: EQ 00002b3a: JUMPDEST 00002b3b: DUP1 00002b3c: ISZERO 00002b3d: PUSH2 0x2b4a 00002b40: JUMPI 00002b41: POP 00002b42: PUSH2 0x0109 00002b45: SLOAD 00002b46: DUP6 00002b47: MLOAD 00002b48: LT 00002b49: ISZERO 00002b4a: JUMPDEST 00002b4b: ISZERO 00002b4c: PUSH2 0x2dc2 00002b4f: JUMPI 00002b50: PUSH1 0x00 00002b52: JUMPDEST 00002b53: DUP8 00002b54: MLOAD 00002b55: DUP2 00002b56: LT 00002b57: ISZERO 00002b58: PUSH2 0x2dc0 00002b5b: JUMPI 00002b5c: PUSH1 0x40 00002b5e: MLOAD 00002b5f: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00002b80: PUSH1 0x20 00002b82: DUP3 00002b83: ADD 00002b84: MSTORE 00002b85: PUSH1 0x3c 00002b87: DUP2 00002b88: ADD 00002b89: DUP7 00002b8a: SWAP1 00002b8b: MSTORE 00002b8c: PUSH1 0x00 00002b8e: SWAP1 00002b8f: PUSH1 0x01 00002b91: SWAP1 00002b92: PUSH1 0x5c 00002b94: ADD 00002b95: PUSH1 0x40 00002b97: MLOAD 00002b98: PUSH1 0x20 00002b9a: DUP2 00002b9b: DUP4 00002b9c: SUB 00002b9d: SUB 00002b9e: DUP2 00002b9f: MSTORE 00002ba0: SWAP1 00002ba1: PUSH1 0x40 00002ba3: MSTORE 00002ba4: DUP1 00002ba5: MLOAD 00002ba6: SWAP1 00002ba7: PUSH1 0x20 00002ba9: ADD 00002baa: KECCAK256 00002bab: DUP9 00002bac: DUP5 00002bad: DUP2 00002bae: MLOAD 00002baf: DUP2 00002bb0: LT 00002bb1: PUSH2 0x2bca 00002bb4: JUMPI 00002bb5: PUSH4 0x4e487b71 00002bba: PUSH1 0xe0 00002bbc: SHL 00002bbd: PUSH1 0x00 00002bbf: MSTORE 00002bc0: PUSH1 0x32 00002bc2: PUSH1 0x04 00002bc4: MSTORE 00002bc5: PUSH1 0x24 00002bc7: PUSH1 0x00 00002bc9: REVERT 00002bca: JUMPDEST 00002bcb: PUSH1 0x20 00002bcd: MUL 00002bce: PUSH1 0x20 00002bd0: ADD 00002bd1: ADD 00002bd2: MLOAD 00002bd3: DUP12 00002bd4: DUP6 00002bd5: DUP2 00002bd6: MLOAD 00002bd7: DUP2 00002bd8: LT 00002bd9: PUSH2 0x2bf2 00002bdc: JUMPI 00002bdd: PUSH4 0x4e487b71 00002be2: PUSH1 0xe0 00002be4: SHL 00002be5: PUSH1 0x00 00002be7: MSTORE 00002be8: PUSH1 0x32 00002bea: PUSH1 0x04 00002bec: MSTORE 00002bed: PUSH1 0x24 00002bef: PUSH1 0x00 00002bf1: REVERT 00002bf2: JUMPDEST 00002bf3: PUSH1 0x20 00002bf5: MUL 00002bf6: PUSH1 0x20 00002bf8: ADD 00002bf9: ADD 00002bfa: MLOAD 00002bfb: DUP12 00002bfc: DUP7 00002bfd: DUP2 00002bfe: MLOAD 00002bff: DUP2 00002c00: LT 00002c01: PUSH2 0x2c1a 00002c04: JUMPI 00002c05: PUSH4 0x4e487b71 00002c0a: PUSH1 0xe0 00002c0c: SHL 00002c0d: PUSH1 0x00 00002c0f: MSTORE 00002c10: PUSH1 0x32 00002c12: PUSH1 0x04 00002c14: MSTORE 00002c15: PUSH1 0x24 00002c17: PUSH1 0x00 00002c19: REVERT 00002c1a: JUMPDEST 00002c1b: PUSH1 0x20 00002c1d: MUL 00002c1e: PUSH1 0x20 00002c20: ADD 00002c21: ADD 00002c22: MLOAD 00002c23: PUSH1 0x40 00002c25: MLOAD 00002c26: PUSH1 0x00 00002c28: DUP2 00002c29: MSTORE 00002c2a: PUSH1 0x20 00002c2c: ADD 00002c2d: PUSH1 0x40 00002c2f: MSTORE 00002c30: PUSH1 0x40 00002c32: MLOAD 00002c33: PUSH2 0x2c58 00002c36: SWAP5 00002c37: SWAP4 00002c38: SWAP3 00002c39: SWAP2 00002c3a: SWAP1 00002c3b: SWAP4 00002c3c: DUP5 00002c3d: MSTORE 00002c3e: PUSH1 0xff 00002c40: SWAP3 00002c41: SWAP1 00002c42: SWAP3 00002c43: AND 00002c44: PUSH1 0x20 00002c46: DUP5 00002c47: ADD 00002c48: MSTORE 00002c49: PUSH1 0x40 00002c4b: DUP4 00002c4c: ADD 00002c4d: MSTORE 00002c4e: PUSH1 0x60 00002c50: DUP3 00002c51: ADD 00002c52: MSTORE 00002c53: PUSH1 0x80 00002c55: ADD 00002c56: SWAP1 00002c57: JUMP 00002c58: JUMPDEST 00002c59: PUSH1 0x20 00002c5b: PUSH1 0x40 00002c5d: MLOAD 00002c5e: PUSH1 0x20 00002c60: DUP2 00002c61: SUB 00002c62: SWAP1 00002c63: DUP1 00002c64: DUP5 00002c65: SUB 00002c66: SWAP1 00002c67: DUP6 00002c68: GAS 00002c69: STATICCALL 00002c6a: ISZERO 00002c6b: DUP1 00002c6c: ISZERO 00002c6d: PUSH2 0x2c7a 00002c70: JUMPI 00002c71: RETURNDATASIZE 00002c72: PUSH1 0x00 00002c74: DUP1 00002c75: RETURNDATACOPY 00002c76: RETURNDATASIZE 00002c77: PUSH1 0x00 00002c79: REVERT 00002c7a: JUMPDEST 00002c7b: POP 00002c7c: POP 00002c7d: PUSH1 0x40 00002c7f: DUP1 00002c80: MLOAD 00002c81: PUSH1 0x1f 00002c83: NOT 00002c84: ADD 00002c85: MLOAD 00002c86: PUSH1 0x01 00002c88: PUSH1 0x01 00002c8a: PUSH1 0xa0 00002c8c: SHL 00002c8d: SUB 00002c8e: DUP2 00002c8f: AND 00002c90: PUSH1 0x00 00002c92: SWAP1 00002c93: DUP2 00002c94: MSTORE 00002c95: PUSH2 0x0100 00002c98: PUSH1 0x20 00002c9a: MSTORE 00002c9b: SWAP2 00002c9c: SWAP1 00002c9d: SWAP2 00002c9e: KECCAK256 00002c9f: SLOAD 00002ca0: SWAP1 00002ca1: SWAP3 00002ca2: POP 00002ca3: PUSH1 0xff 00002ca5: AND 00002ca6: ISZERO 00002ca7: SWAP1 00002ca8: POP 00002ca9: PUSH2 0x2dad 00002cac: JUMPI 00002cad: PUSH1 0x01 00002caf: PUSH1 0x00 00002cb1: JUMPDEST 00002cb2: DUP5 00002cb3: DUP2 00002cb4: LT 00002cb5: ISZERO 00002cb6: PUSH2 0x2d15 00002cb9: JUMPI 00002cba: DUP3 00002cbb: PUSH1 0x01 00002cbd: PUSH1 0x01 00002cbf: PUSH1 0xa0 00002cc1: SHL 00002cc2: SUB 00002cc3: AND 00002cc4: DUP7 00002cc5: DUP3 00002cc6: DUP2 00002cc7: MLOAD 00002cc8: DUP2 00002cc9: LT 00002cca: PUSH2 0x2ce3 00002ccd: JUMPI 00002cce: PUSH4 0x4e487b71 00002cd3: PUSH1 0xe0 00002cd5: SHL 00002cd6: PUSH1 0x00 00002cd8: MSTORE 00002cd9: PUSH1 0x32 00002cdb: PUSH1 0x04 00002cdd: MSTORE 00002cde: PUSH1 0x24 00002ce0: PUSH1 0x00 00002ce2: REVERT 00002ce3: JUMPDEST 00002ce4: PUSH1 0x20 00002ce6: MUL 00002ce7: PUSH1 0x20 00002ce9: ADD 00002cea: ADD 00002ceb: MLOAD 00002cec: PUSH1 0x01 00002cee: PUSH1 0x01 00002cf0: PUSH1 0xa0 00002cf2: SHL 00002cf3: SUB 00002cf4: AND 00002cf5: EQ 00002cf6: ISZERO 00002cf7: PUSH2 0x2d03 00002cfa: JUMPI 00002cfb: PUSH1 0x00 00002cfd: SWAP2 00002cfe: POP 00002cff: PUSH2 0x2d15 00002d02: JUMP 00002d03: JUMPDEST 00002d04: DUP1 00002d05: PUSH2 0x2d0d 00002d08: DUP2 00002d09: PUSH2 0x412c 00002d0c: JUMP 00002d0d: JUMPDEST 00002d0e: SWAP2 00002d0f: POP 00002d10: POP 00002d11: PUSH2 0x2cb1 00002d14: JUMP 00002d15: JUMPDEST 00002d16: POP 00002d17: DUP1 00002d18: ISZERO 00002d19: PUSH2 0x2d63 00002d1c: JUMPI 00002d1d: DUP2 00002d1e: DUP6 00002d1f: DUP6 00002d20: DUP2 00002d21: MLOAD 00002d22: DUP2 00002d23: LT 00002d24: PUSH2 0x2d3d 00002d27: JUMPI 00002d28: PUSH4 0x4e487b71 00002d2d: PUSH1 0xe0 00002d2f: SHL 00002d30: PUSH1 0x00 00002d32: MSTORE 00002d33: PUSH1 0x32 00002d35: PUSH1 0x04 00002d37: MSTORE 00002d38: PUSH1 0x24 00002d3a: PUSH1 0x00 00002d3c: REVERT 00002d3d: JUMPDEST 00002d3e: PUSH1 0x01 00002d40: PUSH1 0x01 00002d42: PUSH1 0xa0 00002d44: SHL 00002d45: SUB 00002d46: SWAP1 00002d47: SWAP3 00002d48: AND 00002d49: PUSH1 0x20 00002d4b: SWAP3 00002d4c: DUP4 00002d4d: MUL 00002d4e: SWAP2 00002d4f: SWAP1 00002d50: SWAP2 00002d51: ADD 00002d52: SWAP1 00002d53: SWAP2 00002d54: ADD 00002d55: MSTORE 00002d56: DUP4 00002d57: PUSH2 0x2d5f 00002d5a: DUP2 00002d5b: PUSH2 0x412c 00002d5e: JUMP 00002d5f: JUMPDEST 00002d60: SWAP5 00002d61: POP 00002d62: POP 00002d63: JUMPDEST 00002d64: PUSH1 0x40 00002d66: DUP1 00002d67: MLOAD 00002d68: PUSH1 0x01 00002d6a: PUSH1 0x01 00002d6c: PUSH1 0xa0 00002d6e: SHL 00002d6f: SUB 00002d70: DUP5 00002d71: AND 00002d72: DUP2 00002d73: MSTORE 00002d74: PUSH1 0x20 00002d76: DUP2 00002d77: ADD 00002d78: DUP10 00002d79: SWAP1 00002d7a: MSTORE 00002d7b: TIMESTAMP 00002d7c: DUP2 00002d7d: DUP4 00002d7e: ADD 00002d7f: MSTORE 00002d80: SWAP1 00002d81: MLOAD 00002d82: PUSH32 0xa1164cf36cb74b65282452422c4a4b867b03edb7007d123f7546f35ea3bf762b 00002da3: SWAP2 00002da4: DUP2 00002da5: SWAP1 00002da6: SUB 00002da7: PUSH1 0x60 00002da9: ADD 00002daa: SWAP1 00002dab: LOG1 00002dac: POP 00002dad: JUMPDEST 00002dae: POP 00002daf: DUP1 00002db0: PUSH2 0x2db8 00002db3: DUP2 00002db4: PUSH2 0x412c 00002db7: JUMP 00002db8: JUMPDEST 00002db9: SWAP2 00002dba: POP 00002dbb: POP 00002dbc: PUSH2 0x2b52 00002dbf: JUMP 00002dc0: JUMPDEST 00002dc1: POP 00002dc2: JUMPDEST 00002dc3: PUSH2 0x0109 00002dc6: SLOAD 00002dc7: GT 00002dc8: ISZERO 00002dc9: SWAP7 00002dca: SWAP6 00002dcb: POP 00002dcc: POP 00002dcd: POP 00002dce: POP 00002dcf: POP 00002dd0: POP 00002dd1: JUMP 00002dd2: JUMPDEST 00002dd3: PUSH2 0x0107 00002dd6: SLOAD 00002dd7: ISZERO 00002dd8: PUSH2 0x0d31 00002ddb: JUMPI 00002ddc: PUSH2 0x0107 00002ddf: SLOAD 00002de0: DUP2 00002de1: LT 00002de2: ISZERO 00002de3: PUSH2 0x2e1f 00002de6: JUMPI 00002de7: PUSH1 0x40 00002de9: MLOAD 00002dea: PUSH3 0x461bcd 00002dee: PUSH1 0xe5 00002df0: SHL 00002df1: DUP2 00002df2: MSTORE 00002df3: PUSH1 0x20 00002df5: PUSH1 0x04 00002df7: DUP3 00002df8: ADD 00002df9: MSTORE 00002dfa: PUSH1 0x0e 00002dfc: PUSH1 0x24 00002dfe: DUP3 00002dff: ADD 00002e00: MSTORE 00002e01: PUSH14 0x216d696e20636c61696d20666565 00002e10: PUSH1 0x90 00002e12: SHL 00002e13: PUSH1 0x44 00002e15: DUP3 00002e16: ADD 00002e17: MSTORE 00002e18: PUSH1 0x64 00002e1a: ADD 00002e1b: PUSH2 0x08ef 00002e1e: JUMP 00002e1f: JUMPDEST 00002e20: PUSH1 0xfb 00002e22: SLOAD 00002e23: PUSH2 0x0d31 00002e26: SWAP1 00002e27: PUSH1 0x01 00002e29: PUSH1 0x01 00002e2b: PUSH1 0xa0 00002e2d: SHL 00002e2e: SUB 00002e2f: AND 00002e30: DUP3 00002e31: PUSH2 0x2fb5 00002e34: JUMP 00002e35: JUMPDEST 00002e36: PUSH2 0x0104 00002e39: PUSH1 0x00 00002e3b: DUP5 00002e3c: PUSH1 0x00 00002e3e: DUP2 00002e3f: MLOAD 00002e40: DUP2 00002e41: LT 00002e42: PUSH2 0x2e5b 00002e45: JUMPI 00002e46: PUSH4 0x4e487b71 00002e4b: PUSH1 0xe0 00002e4d: SHL 00002e4e: PUSH1 0x00 00002e50: MSTORE 00002e51: PUSH1 0x32 00002e53: PUSH1 0x04 00002e55: MSTORE 00002e56: PUSH1 0x24 00002e58: PUSH1 0x00 00002e5a: REVERT 00002e5b: JUMPDEST 00002e5c: PUSH1 0x20 00002e5e: SWAP1 00002e5f: DUP2 00002e60: MUL 00002e61: SWAP2 00002e62: SWAP1 00002e63: SWAP2 00002e64: ADD 00002e65: DUP2 00002e66: ADD 00002e67: MLOAD 00002e68: DUP3 00002e69: MSTORE 00002e6a: DUP2 00002e6b: DUP2 00002e6c: ADD 00002e6d: SWAP3 00002e6e: SWAP1 00002e6f: SWAP3 00002e70: MSTORE 00002e71: PUSH1 0x40 00002e73: SWAP1 00002e74: DUP2 00002e75: ADD 00002e76: PUSH1 0x00 00002e78: SWAP1 00002e79: DUP2 00002e7a: KECCAK256 00002e7b: PUSH1 0x01 00002e7d: PUSH1 0x01 00002e7f: PUSH1 0xa0 00002e81: SHL 00002e82: SUB 00002e83: DUP1 00002e84: DUP10 00002e85: AND 00002e86: DUP4 00002e87: MSTORE 00002e88: SWAP4 00002e89: MSTORE 00002e8a: DUP2 00002e8b: SWAP1 00002e8c: KECCAK256 00002e8d: SLOAD 00002e8e: SWAP1 00002e8f: MLOAD 00002e90: PUSH4 0x3c031681 00002e95: PUSH1 0xe1 00002e97: SHL 00002e98: DUP2 00002e99: MSTORE 00002e9a: SWAP2 00002e9b: AND 00002e9c: SWAP1 00002e9d: PUSH4 0x78062d02 00002ea2: SWAP1 00002ea3: PUSH2 0x2eb8 00002ea6: SWAP1 00002ea7: DUP8 00002ea8: SWAP1 00002ea9: DUP6 00002eaa: SWAP1 00002eab: DUP11 00002eac: SWAP1 00002ead: DUP10 00002eae: SWAP1 00002eaf: DUP10 00002eb0: SWAP1 00002eb1: PUSH1 0x04 00002eb3: ADD 00002eb4: PUSH2 0x3d3b 00002eb7: JUMP 00002eb8: JUMPDEST 00002eb9: PUSH1 0x00 00002ebb: PUSH1 0x40 00002ebd: MLOAD 00002ebe: DUP1 00002ebf: DUP4 00002ec0: SUB 00002ec1: DUP2 00002ec2: PUSH1 0x00 00002ec4: DUP8 00002ec5: DUP1 00002ec6: EXTCODESIZE 00002ec7: ISZERO 00002ec8: DUP1 00002ec9: ISZERO 00002eca: PUSH2 0x2ed2 00002ecd: JUMPI 00002ece: PUSH1 0x00 00002ed0: DUP1 00002ed1: REVERT 00002ed2: JUMPDEST 00002ed3: POP 00002ed4: GAS 00002ed5: CALL 00002ed6: ISZERO 00002ed7: DUP1 00002ed8: ISZERO 00002ed9: PUSH2 0x2ee6 00002edc: JUMPI 00002edd: RETURNDATASIZE 00002ede: PUSH1 0x00 00002ee0: DUP1 00002ee1: RETURNDATACOPY 00002ee2: RETURNDATASIZE 00002ee3: PUSH1 0x00 00002ee5: REVERT 00002ee6: JUMPDEST 00002ee7: POP 00002ee8: POP 00002ee9: POP 00002eea: POP 00002eeb: POP 00002eec: POP 00002eed: POP 00002eee: POP 00002eef: POP 00002ef0: JUMP 00002ef1: JUMPDEST 00002ef2: PUSH1 0x00 00002ef4: DUP1 00002ef5: PUSH2 0x2f27 00002ef8: DUP7 00002ef9: DUP7 00002efa: DUP7 00002efb: PUSH1 0x00 00002efd: DUP2 00002efe: MLOAD 00002eff: DUP2 00002f00: LT 00002f01: PUSH2 0x2f1a 00002f04: JUMPI 00002f05: PUSH4 0x4e487b71 00002f0a: PUSH1 0xe0 00002f0c: SHL 00002f0d: PUSH1 0x00 00002f0f: MSTORE 00002f10: PUSH1 0x32 00002f12: PUSH1 0x04 00002f14: MSTORE 00002f15: PUSH1 0x24 00002f17: PUSH1 0x00 00002f19: REVERT 00002f1a: JUMPDEST 00002f1b: PUSH1 0x20 00002f1d: MUL 00002f1e: PUSH1 0x20 00002f20: ADD 00002f21: ADD 00002f22: MLOAD 00002f23: PUSH2 0x3377 00002f26: JUMP 00002f27: JUMPDEST 00002f28: SWAP2 00002f29: POP 00002f2a: SWAP2 00002f2b: POP 00002f2c: PUSH2 0x27d1 00002f2f: DUP6 00002f30: DUP5 00002f31: DUP5 00002f32: DUP5 00002f33: PUSH2 0x2606 00002f36: JUMP 00002f37: JUMPDEST 00002f38: PUSH1 0x40 00002f3a: MLOAD 00002f3b: PUSH1 0x01 00002f3d: PUSH1 0x01 00002f3f: PUSH1 0xa0 00002f41: SHL 00002f42: SUB 00002f43: DUP1 00002f44: DUP6 00002f45: AND 00002f46: PUSH1 0x24 00002f48: DUP4 00002f49: ADD 00002f4a: MSTORE 00002f4b: DUP4 00002f4c: AND 00002f4d: PUSH1 0x44 00002f4f: DUP3 00002f50: ADD 00002f51: MSTORE 00002f52: PUSH1 0x64 00002f54: DUP2 00002f55: ADD 00002f56: DUP3 00002f57: SWAP1 00002f58: MSTORE 00002f59: PUSH2 0x105b 00002f5c: SWAP1 00002f5d: DUP6 00002f5e: SWAP1 00002f5f: PUSH4 0x23b872dd 00002f64: PUSH1 0xe0 00002f66: SHL 00002f67: SWAP1 00002f68: PUSH1 0x84 00002f6a: ADD 00002f6b: JUMPDEST 00002f6c: PUSH1 0x40 00002f6e: DUP1 00002f6f: MLOAD 00002f70: PUSH1 0x1f 00002f72: NOT 00002f73: DUP2 00002f74: DUP5 00002f75: SUB 00002f76: ADD 00002f77: DUP2 00002f78: MSTORE 00002f79: SWAP2 00002f7a: SWAP1 00002f7b: MSTORE 00002f7c: PUSH1 0x20 00002f7e: DUP2 00002f7f: ADD 00002f80: DUP1 00002f81: MLOAD 00002f82: PUSH1 0x01 00002f84: PUSH1 0x01 00002f86: PUSH1 0xe0 00002f88: SHL 00002f89: SUB 00002f8a: AND 00002f8b: PUSH1 0x01 00002f8d: PUSH1 0x01 00002f8f: PUSH1 0xe0 00002f91: SHL 00002f92: SUB 00002f93: NOT 00002f94: SWAP1 00002f95: SWAP4 00002f96: AND 00002f97: SWAP3 00002f98: SWAP1 00002f99: SWAP3 00002f9a: OR 00002f9b: SWAP1 00002f9c: SWAP2 00002f9d: MSTORE 00002f9e: PUSH2 0x33cd 00002fa1: JUMP 00002fa2: JUMPDEST 00002fa3: PUSH1 0x00 00002fa5: PUSH2 0x2fae 00002fa8: DUP3 00002fa9: DUP5 00002faa: PUSH2 0x40e9 00002fad: JUMP 00002fae: JUMPDEST 00002faf: SWAP4 00002fb0: SWAP3 00002fb1: POP 00002fb2: POP 00002fb3: POP 00002fb4: JUMP 00002fb5: JUMPDEST 00002fb6: DUP1 00002fb7: SELFBALANCE 00002fb8: LT 00002fb9: ISZERO 00002fba: PUSH2 0x3005 00002fbd: JUMPI 00002fbe: PUSH1 0x40 00002fc0: MLOAD 00002fc1: PUSH3 0x461bcd 00002fc5: PUSH1 0xe5 00002fc7: SHL 00002fc8: DUP2 00002fc9: MSTORE 00002fca: PUSH1 0x20 00002fcc: PUSH1 0x04 00002fce: DUP3 00002fcf: ADD 00002fd0: MSTORE 00002fd1: PUSH1 0x1d 00002fd3: PUSH1 0x24 00002fd5: DUP3 00002fd6: ADD 00002fd7: MSTORE 00002fd8: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e6365000000 00002ff9: PUSH1 0x44 00002ffb: DUP3 00002ffc: ADD 00002ffd: MSTORE 00002ffe: PUSH1 0x64 00003000: ADD 00003001: PUSH2 0x08ef 00003004: JUMP 00003005: JUMPDEST 00003006: PUSH1 0x00 00003008: DUP3 00003009: PUSH1 0x01 0000300b: PUSH1 0x01 0000300d: PUSH1 0xa0 0000300f: SHL 00003010: SUB 00003011: AND 00003012: DUP3 00003013: PUSH1 0x40 00003015: MLOAD 00003016: PUSH1 0x00 00003018: PUSH1 0x40 0000301a: MLOAD 0000301b: DUP1 0000301c: DUP4 0000301d: SUB 0000301e: DUP2 0000301f: DUP6 00003020: DUP8 00003021: GAS 00003022: CALL 00003023: SWAP3 00003024: POP 00003025: POP 00003026: POP 00003027: RETURNDATASIZE 00003028: DUP1 00003029: PUSH1 0x00 0000302b: DUP2 0000302c: EQ 0000302d: PUSH2 0x3052 00003030: JUMPI 00003031: PUSH1 0x40 00003033: MLOAD 00003034: SWAP2 00003035: POP 00003036: PUSH1 0x1f 00003038: NOT 00003039: PUSH1 0x3f 0000303b: RETURNDATASIZE 0000303c: ADD 0000303d: AND 0000303e: DUP3 0000303f: ADD 00003040: PUSH1 0x40 00003042: MSTORE 00003043: RETURNDATASIZE 00003044: DUP3 00003045: MSTORE 00003046: RETURNDATASIZE 00003047: PUSH1 0x00 00003049: PUSH1 0x20 0000304b: DUP5 0000304c: ADD 0000304d: RETURNDATACOPY 0000304e: PUSH2 0x3057 00003051: JUMP 00003052: JUMPDEST 00003053: PUSH1 0x60 00003055: SWAP2 00003056: POP 00003057: JUMPDEST 00003058: POP 00003059: POP 0000305a: SWAP1 0000305b: POP 0000305c: DUP1 0000305d: PUSH2 0x10fd 00003060: JUMPI 00003061: PUSH1 0x40 00003063: MLOAD 00003064: PUSH3 0x461bcd 00003068: PUSH1 0xe5 0000306a: SHL 0000306b: DUP2 0000306c: MSTORE 0000306d: PUSH1 0x20 0000306f: PUSH1 0x04 00003071: DUP3 00003072: ADD 00003073: MSTORE 00003074: PUSH1 0x3a 00003076: PUSH1 0x24 00003078: DUP3 00003079: ADD 0000307a: MSTORE 0000307b: PUSH32 0x416464726573733a20756e61626c6520746f2073656e642076616c75652c2072 0000309c: PUSH1 0x44 0000309e: DUP3 0000309f: ADD 000030a0: MSTORE 000030a1: PUSH32 0x6563697069656e74206d61792068617665207265766572746564000000000000 000030c2: PUSH1 0x64 000030c4: DUP3 000030c5: ADD 000030c6: MSTORE 000030c7: PUSH1 0x84 000030c9: ADD 000030ca: PUSH2 0x08ef 000030cd: JUMP 000030ce: JUMPDEST 000030cf: PUSH2 0x010a 000030d2: SLOAD 000030d3: PUSH1 0x00 000030d5: SWAP1 000030d6: PUSH1 0x01 000030d8: PUSH1 0x01 000030da: PUSH1 0xa0 000030dc: SHL 000030dd: SUB 000030de: AND 000030df: ISZERO 000030e0: PUSH2 0x30f5 000030e3: JUMPI 000030e4: PUSH2 0x010a 000030e7: SLOAD 000030e8: PUSH1 0x01 000030ea: PUSH1 0x01 000030ec: PUSH1 0xa0 000030ee: SHL 000030ef: SUB 000030f0: AND 000030f1: PUSH2 0x3102 000030f4: JUMP 000030f5: JUMPDEST 000030f6: PUSH1 0x97 000030f8: SLOAD 000030f9: PUSH1 0x01 000030fb: PUSH1 0x01 000030fd: PUSH1 0xa0 000030ff: SHL 00003100: SUB 00003101: AND 00003102: JUMPDEST 00003103: SWAP1 00003104: POP 00003105: SWAP1 00003106: JUMP 00003107: JUMPDEST 00003108: PUSH1 0x40 0000310a: MLOAD 0000310b: PUSH1 0x01 0000310d: PUSH1 0x01 0000310f: PUSH1 0xa0 00003111: SHL 00003112: SUB 00003113: DUP4 00003114: AND 00003115: PUSH1 0x24 00003117: DUP3 00003118: ADD 00003119: MSTORE 0000311a: PUSH1 0x44 0000311c: DUP2 0000311d: ADD 0000311e: DUP3 0000311f: SWAP1 00003120: MSTORE 00003121: PUSH2 0x10fd 00003124: SWAP1 00003125: DUP5 00003126: SWAP1 00003127: PUSH4 0xa9059cbb 0000312c: PUSH1 0xe0 0000312e: SHL 0000312f: SWAP1 00003130: PUSH1 0x64 00003132: ADD 00003133: PUSH2 0x2f6b 00003136: JUMP 00003137: JUMPDEST 00003138: DUP1 00003139: EXTCODESIZE 0000313a: PUSH2 0x319b 0000313d: JUMPI 0000313e: PUSH1 0x40 00003140: MLOAD 00003141: PUSH3 0x461bcd 00003145: PUSH1 0xe5 00003147: SHL 00003148: DUP2 00003149: MSTORE 0000314a: PUSH1 0x20 0000314c: PUSH1 0x04 0000314e: DUP3 0000314f: ADD 00003150: MSTORE 00003151: PUSH1 0x2d 00003153: PUSH1 0x24 00003155: DUP3 00003156: ADD 00003157: MSTORE 00003158: PUSH32 0x455243313936373a206e657720696d706c656d656e746174696f6e206973206e 00003179: PUSH1 0x44 0000317b: DUP3 0000317c: ADD 0000317d: MSTORE 0000317e: PUSH13 0x1bdd08184818dbdb9d1c9858dd 0000318c: PUSH1 0x9a 0000318e: SHL 0000318f: PUSH1 0x64 00003191: DUP3 00003192: ADD 00003193: MSTORE 00003194: PUSH1 0x84 00003196: ADD 00003197: PUSH2 0x08ef 0000319a: JUMP 0000319b: JUMPDEST 0000319c: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 000031bd: DUP1 000031be: SLOAD 000031bf: PUSH1 0x01 000031c1: PUSH1 0x01 000031c3: PUSH1 0xa0 000031c5: SHL 000031c6: SUB 000031c7: NOT 000031c8: AND 000031c9: PUSH1 0x01 000031cb: PUSH1 0x01 000031cd: PUSH1 0xa0 000031cf: SHL 000031d0: SUB 000031d1: SWAP3 000031d2: SWAP1 000031d3: SWAP3 000031d4: AND 000031d5: SWAP2 000031d6: SWAP1 000031d7: SWAP2 000031d8: OR 000031d9: SWAP1 000031da: SSTORE 000031db: JUMP 000031dc: JUMPDEST 000031dd: PUSH1 0x60 000031df: DUP3 000031e0: EXTCODESIZE 000031e1: PUSH2 0x323b 000031e4: JUMPI 000031e5: PUSH1 0x40 000031e7: MLOAD 000031e8: PUSH3 0x461bcd 000031ec: PUSH1 0xe5 000031ee: SHL 000031ef: DUP2 000031f0: MSTORE 000031f1: PUSH1 0x20 000031f3: PUSH1 0x04 000031f5: DUP3 000031f6: ADD 000031f7: MSTORE 000031f8: PUSH1 0x26 000031fa: PUSH1 0x24 000031fc: DUP3 000031fd: ADD 000031fe: MSTORE 000031ff: PUSH32 0x416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f 00003220: PUSH1 0x44 00003222: DUP3 00003223: ADD 00003224: MSTORE 00003225: PUSH6 0x1b9d1c9858dd 0000322c: PUSH1 0xd2 0000322e: SHL 0000322f: PUSH1 0x64 00003231: DUP3 00003232: ADD 00003233: MSTORE 00003234: PUSH1 0x84 00003236: ADD 00003237: PUSH2 0x08ef 0000323a: JUMP 0000323b: JUMPDEST 0000323c: PUSH1 0x00 0000323e: DUP1 0000323f: DUP5 00003240: PUSH1 0x01 00003242: PUSH1 0x01 00003244: PUSH1 0xa0 00003246: SHL 00003247: SUB 00003248: AND 00003249: DUP5 0000324a: PUSH1 0x40 0000324c: MLOAD 0000324d: PUSH2 0x3256 00003250: SWAP2 00003251: SWAP1 00003252: PUSH2 0x3d1f 00003255: JUMP 00003256: JUMPDEST 00003257: PUSH1 0x00 00003259: PUSH1 0x40 0000325b: MLOAD 0000325c: DUP1 0000325d: DUP4 0000325e: SUB 0000325f: DUP2 00003260: DUP6 00003261: GAS 00003262: DELEGATECALL 00003263: SWAP2 00003264: POP 00003265: POP 00003266: RETURNDATASIZE 00003267: DUP1 00003268: PUSH1 0x00 0000326a: DUP2 0000326b: EQ 0000326c: PUSH2 0x3291 0000326f: JUMPI 00003270: PUSH1 0x40 00003272: MLOAD 00003273: SWAP2 00003274: POP 00003275: PUSH1 0x1f 00003277: NOT 00003278: PUSH1 0x3f 0000327a: RETURNDATASIZE 0000327b: ADD 0000327c: AND 0000327d: DUP3 0000327e: ADD 0000327f: PUSH1 0x40 00003281: MSTORE 00003282: RETURNDATASIZE 00003283: DUP3 00003284: MSTORE 00003285: RETURNDATASIZE 00003286: PUSH1 0x00 00003288: PUSH1 0x20 0000328a: DUP5 0000328b: ADD 0000328c: RETURNDATACOPY 0000328d: PUSH2 0x3296 00003290: JUMP 00003291: JUMPDEST 00003292: PUSH1 0x60 00003294: SWAP2 00003295: POP 00003296: JUMPDEST 00003297: POP 00003298: SWAP2 00003299: POP 0000329a: SWAP2 0000329b: POP 0000329c: PUSH2 0x32be 0000329f: DUP3 000032a0: DUP3 000032a1: PUSH1 0x40 000032a3: MLOAD 000032a4: DUP1 000032a5: PUSH1 0x60 000032a7: ADD 000032a8: PUSH1 0x40 000032aa: MSTORE 000032ab: DUP1 000032ac: PUSH1 0x27 000032ae: DUP2 000032af: MSTORE 000032b0: PUSH1 0x20 000032b2: ADD 000032b3: PUSH2 0x5989 000032b6: PUSH1 0x27 000032b8: SWAP2 000032b9: CODECOPY 000032ba: PUSH2 0x349f 000032bd: JUMP 000032be: JUMPDEST 000032bf: SWAP6 000032c0: SWAP5 000032c1: POP 000032c2: POP 000032c3: POP 000032c4: POP 000032c5: POP 000032c6: JUMP 000032c7: JUMPDEST 000032c8: PUSH2 0x32d0 000032cb: DUP2 000032cc: PUSH2 0x3137 000032cf: JUMP 000032d0: JUMPDEST 000032d1: PUSH1 0x40 000032d3: MLOAD 000032d4: PUSH1 0x01 000032d6: PUSH1 0x01 000032d8: PUSH1 0xa0 000032da: SHL 000032db: SUB 000032dc: DUP3 000032dd: AND 000032de: SWAP1 000032df: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 00003300: SWAP1 00003301: PUSH1 0x00 00003303: SWAP1 00003304: LOG2 00003305: POP 00003306: JUMP 00003307: JUMPDEST 00003308: PUSH1 0x00 0000330a: SLOAD 0000330b: PUSH2 0x0100 0000330e: SWAP1 0000330f: DIV 00003310: PUSH1 0xff 00003312: AND 00003313: DUP1 00003314: PUSH2 0x3320 00003317: JUMPI 00003318: POP 00003319: PUSH1 0x00 0000331b: SLOAD 0000331c: PUSH1 0xff 0000331e: AND 0000331f: ISZERO 00003320: JUMPDEST 00003321: PUSH2 0x333c 00003324: JUMPI 00003325: PUSH1 0x40 00003327: MLOAD 00003328: PUSH3 0x461bcd 0000332c: PUSH1 0xe5 0000332e: SHL 0000332f: DUP2 00003330: MSTORE 00003331: PUSH1 0x04 00003333: ADD 00003334: PUSH2 0x08ef 00003337: SWAP1 00003338: PUSH2 0x3fba 0000333b: JUMP 0000333c: JUMPDEST 0000333d: PUSH1 0x00 0000333f: SLOAD 00003340: PUSH2 0x0100 00003343: SWAP1 00003344: DIV 00003345: PUSH1 0xff 00003347: AND 00003348: ISZERO 00003349: DUP1 0000334a: ISZERO 0000334b: PUSH2 0x3367 0000334e: JUMPI 0000334f: PUSH1 0x00 00003351: DUP1 00003352: SLOAD 00003353: PUSH1 0xff 00003355: NOT 00003356: PUSH2 0xff00 00003359: NOT 0000335a: SWAP1 0000335b: SWAP2 0000335c: AND 0000335d: PUSH2 0x0100 00003360: OR 00003361: AND 00003362: PUSH1 0x01 00003364: OR 00003365: SWAP1 00003366: SSTORE 00003367: JUMPDEST 00003368: PUSH2 0x336f 0000336b: PUSH2 0x34d8 0000336e: JUMP 0000336f: JUMPDEST 00003370: PUSH2 0x29dd 00003373: PUSH2 0x354b 00003376: JUMP 00003377: JUMPDEST 00003378: PUSH1 0x00 0000337a: DUP1 0000337b: PUSH1 0x00 0000337d: PUSH2 0x010c 00003380: SLOAD 00003381: PUSH1 0x00 00003383: EQ 00003384: PUSH2 0x3390 00003387: JUMPI 00003388: PUSH2 0x010c 0000338b: SLOAD 0000338c: PUSH2 0x3393 0000338f: JUMP 00003390: JUMPDEST 00003391: PUSH1 0x0a 00003393: JUMPDEST 00003394: SWAP1 00003395: POP 00003396: PUSH2 0x2710 00003399: PUSH2 0x33a2 0000339c: DUP3 0000339d: DUP3 0000339e: PUSH2 0x40e9 000033a1: JUMP 000033a2: JUMPDEST 000033a3: PUSH2 0x33ac 000033a6: SWAP1 000033a7: DUP9 000033a8: PUSH2 0x40ca 000033ab: JUMP 000033ac: JUMPDEST 000033ad: PUSH2 0x33b6 000033b0: SWAP2 000033b1: SWAP1 000033b2: PUSH2 0x40aa 000033b5: JUMP 000033b6: JUMPDEST 000033b7: SWAP3 000033b8: POP 000033b9: PUSH2 0x33c2 000033bc: DUP4 000033bd: DUP8 000033be: PUSH2 0x40e9 000033c1: JUMP 000033c2: JUMPDEST 000033c3: SWAP2 000033c4: POP 000033c5: POP 000033c6: SWAP4 000033c7: POP 000033c8: SWAP4 000033c9: SWAP2 000033ca: POP 000033cb: POP 000033cc: JUMP 000033cd: JUMPDEST 000033ce: PUSH1 0x00 000033d0: PUSH2 0x3422 000033d3: DUP3 000033d4: PUSH1 0x40 000033d6: MLOAD 000033d7: DUP1 000033d8: PUSH1 0x40 000033da: ADD 000033db: PUSH1 0x40 000033dd: MSTORE 000033de: DUP1 000033df: PUSH1 0x20 000033e1: DUP2 000033e2: MSTORE 000033e3: PUSH1 0x20 000033e5: ADD 000033e6: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00003407: DUP2 00003408: MSTORE 00003409: POP 0000340a: DUP6 0000340b: PUSH1 0x01 0000340d: PUSH1 0x01 0000340f: PUSH1 0xa0 00003411: SHL 00003412: SUB 00003413: AND 00003414: PUSH2 0x35b4 00003417: SWAP1 00003418: SWAP3 00003419: SWAP2 0000341a: SWAP1 0000341b: PUSH4 0xffffffff 00003420: AND 00003421: JUMP 00003422: JUMPDEST 00003423: DUP1 00003424: MLOAD 00003425: SWAP1 00003426: SWAP2 00003427: POP 00003428: ISZERO 00003429: PUSH2 0x10fd 0000342c: JUMPI 0000342d: DUP1 0000342e: DUP1 0000342f: PUSH1 0x20 00003431: ADD 00003432: SWAP1 00003433: MLOAD 00003434: DUP2 00003435: ADD 00003436: SWAP1 00003437: PUSH2 0x3440 0000343a: SWAP2 0000343b: SWAP1 0000343c: PUSH2 0x3c25 0000343f: JUMP 00003440: JUMPDEST 00003441: PUSH2 0x10fd 00003444: JUMPI 00003445: PUSH1 0x40 00003447: MLOAD 00003448: PUSH3 0x461bcd 0000344c: PUSH1 0xe5 0000344e: SHL 0000344f: DUP2 00003450: MSTORE 00003451: PUSH1 0x20 00003453: PUSH1 0x04 00003455: DUP3 00003456: ADD 00003457: MSTORE 00003458: PUSH1 0x2a 0000345a: PUSH1 0x24 0000345c: DUP3 0000345d: ADD 0000345e: MSTORE 0000345f: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00003480: PUSH1 0x44 00003482: DUP3 00003483: ADD 00003484: MSTORE 00003485: PUSH10 0x1bdd081cdd58d8d95959 00003490: PUSH1 0xb2 00003492: SHL 00003493: PUSH1 0x64 00003495: DUP3 00003496: ADD 00003497: MSTORE 00003498: PUSH1 0x84 0000349a: ADD 0000349b: PUSH2 0x08ef 0000349e: JUMP 0000349f: JUMPDEST 000034a0: PUSH1 0x60 000034a2: DUP4 000034a3: ISZERO 000034a4: PUSH2 0x34ae 000034a7: JUMPI 000034a8: POP 000034a9: DUP2 000034aa: PUSH2 0x2fae 000034ad: JUMP 000034ae: JUMPDEST 000034af: DUP3 000034b0: MLOAD 000034b1: ISZERO 000034b2: PUSH2 0x34be 000034b5: JUMPI 000034b6: DUP3 000034b7: MLOAD 000034b8: DUP1 000034b9: DUP5 000034ba: PUSH1 0x20 000034bc: ADD 000034bd: REVERT 000034be: JUMPDEST 000034bf: DUP2 000034c0: PUSH1 0x40 000034c2: MLOAD 000034c3: PUSH3 0x461bcd 000034c7: PUSH1 0xe5 000034c9: SHL 000034ca: DUP2 000034cb: MSTORE 000034cc: PUSH1 0x04 000034ce: ADD 000034cf: PUSH2 0x08ef 000034d2: SWAP2 000034d3: SWAP1 000034d4: PUSH2 0x3ee6 000034d7: JUMP 000034d8: JUMPDEST 000034d9: PUSH1 0x00 000034db: SLOAD 000034dc: PUSH2 0x0100 000034df: SWAP1 000034e0: DIV 000034e1: PUSH1 0xff 000034e3: AND 000034e4: DUP1 000034e5: PUSH2 0x34f1 000034e8: JUMPI 000034e9: POP 000034ea: PUSH1 0x00 000034ec: SLOAD 000034ed: PUSH1 0xff 000034ef: AND 000034f0: ISZERO 000034f1: JUMPDEST 000034f2: PUSH2 0x350d 000034f5: JUMPI 000034f6: PUSH1 0x40 000034f8: MLOAD 000034f9: PUSH3 0x461bcd 000034fd: PUSH1 0xe5 000034ff: SHL 00003500: DUP2 00003501: MSTORE 00003502: PUSH1 0x04 00003504: ADD 00003505: PUSH2 0x08ef 00003508: SWAP1 00003509: PUSH2 0x3fba 0000350c: JUMP 0000350d: JUMPDEST 0000350e: PUSH1 0x00 00003510: SLOAD 00003511: PUSH2 0x0100 00003514: SWAP1 00003515: DIV 00003516: PUSH1 0xff 00003518: AND 00003519: ISZERO 0000351a: DUP1 0000351b: ISZERO 0000351c: PUSH2 0x29dd 0000351f: JUMPI 00003520: PUSH1 0x00 00003522: DUP1 00003523: SLOAD 00003524: PUSH1 0xff 00003526: NOT 00003527: PUSH2 0xff00 0000352a: NOT 0000352b: SWAP1 0000352c: SWAP2 0000352d: AND 0000352e: PUSH2 0x0100 00003531: OR 00003532: AND 00003533: PUSH1 0x01 00003535: OR 00003536: SWAP1 00003537: SSTORE 00003538: DUP1 00003539: ISZERO 0000353a: PUSH2 0x0d31 0000353d: JUMPI 0000353e: PUSH1 0x00 00003540: DUP1 00003541: SLOAD 00003542: PUSH2 0xff00 00003545: NOT 00003546: AND 00003547: SWAP1 00003548: SSTORE 00003549: POP 0000354a: JUMP 0000354b: JUMPDEST 0000354c: PUSH1 0x00 0000354e: SLOAD 0000354f: PUSH2 0x0100 00003552: SWAP1 00003553: DIV 00003554: PUSH1 0xff 00003556: AND 00003557: DUP1 00003558: PUSH2 0x3564 0000355b: JUMPI 0000355c: POP 0000355d: PUSH1 0x00 0000355f: SLOAD 00003560: PUSH1 0xff 00003562: AND 00003563: ISZERO 00003564: JUMPDEST 00003565: PUSH2 0x3580 00003568: JUMPI 00003569: PUSH1 0x40 0000356b: MLOAD 0000356c: PUSH3 0x461bcd 00003570: PUSH1 0xe5 00003572: SHL 00003573: DUP2 00003574: MSTORE 00003575: PUSH1 0x04 00003577: ADD 00003578: PUSH2 0x08ef 0000357b: SWAP1 0000357c: PUSH2 0x3fba 0000357f: JUMP 00003580: JUMPDEST 00003581: PUSH1 0x00 00003583: SLOAD 00003584: PUSH2 0x0100 00003587: SWAP1 00003588: DIV 00003589: PUSH1 0xff 0000358b: AND 0000358c: ISZERO 0000358d: DUP1 0000358e: ISZERO 0000358f: PUSH2 0x35ab 00003592: JUMPI 00003593: PUSH1 0x00 00003595: DUP1 00003596: SLOAD 00003597: PUSH1 0xff 00003599: NOT 0000359a: PUSH2 0xff00 0000359d: NOT 0000359e: SWAP1 0000359f: SWAP2 000035a0: AND 000035a1: PUSH2 0x0100 000035a4: OR 000035a5: AND 000035a6: PUSH1 0x01 000035a8: OR 000035a9: SWAP1 000035aa: SSTORE 000035ab: JUMPDEST 000035ac: PUSH2 0x29dd 000035af: CALLER 000035b0: PUSH2 0x29f1 000035b3: JUMP 000035b4: JUMPDEST 000035b5: PUSH1 0x60 000035b7: PUSH2 0x35c3 000035ba: DUP5 000035bb: DUP5 000035bc: PUSH1 0x00 000035be: DUP6 000035bf: PUSH2 0x35cb 000035c2: JUMP 000035c3: JUMPDEST 000035c4: SWAP5 000035c5: SWAP4 000035c6: POP 000035c7: POP 000035c8: POP 000035c9: POP 000035ca: JUMP 000035cb: JUMPDEST 000035cc: PUSH1 0x60 000035ce: DUP3 000035cf: SELFBALANCE 000035d0: LT 000035d1: ISZERO 000035d2: PUSH2 0x362c 000035d5: JUMPI 000035d6: PUSH1 0x40 000035d8: MLOAD 000035d9: PUSH3 0x461bcd 000035dd: PUSH1 0xe5 000035df: SHL 000035e0: DUP2 000035e1: MSTORE 000035e2: PUSH1 0x20 000035e4: PUSH1 0x04 000035e6: DUP3 000035e7: ADD 000035e8: MSTORE 000035e9: PUSH1 0x26 000035eb: PUSH1 0x24 000035ed: DUP3 000035ee: ADD 000035ef: MSTORE 000035f0: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 00003611: PUSH1 0x44 00003613: DUP3 00003614: ADD 00003615: MSTORE 00003616: PUSH6 0x1c8818d85b1b 0000361d: PUSH1 0xd2 0000361f: SHL 00003620: PUSH1 0x64 00003622: DUP3 00003623: ADD 00003624: MSTORE 00003625: PUSH1 0x84 00003627: ADD 00003628: PUSH2 0x08ef 0000362b: JUMP 0000362c: JUMPDEST 0000362d: DUP5 0000362e: EXTCODESIZE 0000362f: PUSH2 0x367a 00003632: JUMPI 00003633: PUSH1 0x40 00003635: MLOAD 00003636: PUSH3 0x461bcd 0000363a: PUSH1 0xe5 0000363c: SHL 0000363d: DUP2 0000363e: MSTORE 0000363f: PUSH1 0x20 00003641: PUSH1 0x04 00003643: DUP3 00003644: ADD 00003645: MSTORE 00003646: PUSH1 0x1d 00003648: PUSH1 0x24 0000364a: DUP3 0000364b: ADD 0000364c: MSTORE 0000364d: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 0000366e: PUSH1 0x44 00003670: DUP3 00003671: ADD 00003672: MSTORE 00003673: PUSH1 0x64 00003675: ADD 00003676: PUSH2 0x08ef 00003679: JUMP 0000367a: JUMPDEST 0000367b: PUSH1 0x00 0000367d: DUP1 0000367e: DUP7 0000367f: PUSH1 0x01 00003681: PUSH1 0x01 00003683: PUSH1 0xa0 00003685: SHL 00003686: SUB 00003687: AND 00003688: DUP6 00003689: DUP8 0000368a: PUSH1 0x40 0000368c: MLOAD 0000368d: PUSH2 0x3696 00003690: SWAP2 00003691: SWAP1 00003692: PUSH2 0x3d1f 00003695: JUMP 00003696: JUMPDEST 00003697: PUSH1 0x00 00003699: PUSH1 0x40 0000369b: MLOAD 0000369c: DUP1 0000369d: DUP4 0000369e: SUB 0000369f: DUP2 000036a0: DUP6 000036a1: DUP8 000036a2: GAS 000036a3: CALL 000036a4: SWAP3 000036a5: POP 000036a6: POP 000036a7: POP 000036a8: RETURNDATASIZE 000036a9: DUP1 000036aa: PUSH1 0x00 000036ac: DUP2 000036ad: EQ 000036ae: PUSH2 0x36d3 000036b1: JUMPI 000036b2: PUSH1 0x40 000036b4: MLOAD 000036b5: SWAP2 000036b6: POP 000036b7: PUSH1 0x1f 000036b9: NOT 000036ba: PUSH1 0x3f 000036bc: RETURNDATASIZE 000036bd: ADD 000036be: AND 000036bf: DUP3 000036c0: ADD 000036c1: PUSH1 0x40 000036c3: MSTORE 000036c4: RETURNDATASIZE 000036c5: DUP3 000036c6: MSTORE 000036c7: RETURNDATASIZE 000036c8: PUSH1 0x00 000036ca: PUSH1 0x20 000036cc: DUP5 000036cd: ADD 000036ce: RETURNDATACOPY 000036cf: PUSH2 0x36d8 000036d2: JUMP 000036d3: JUMPDEST 000036d4: PUSH1 0x60 000036d6: SWAP2 000036d7: POP 000036d8: JUMPDEST 000036d9: POP 000036da: SWAP2 000036db: POP 000036dc: SWAP2 000036dd: POP 000036de: PUSH2 0x36e8 000036e1: DUP3 000036e2: DUP3 000036e3: DUP7 000036e4: PUSH2 0x349f 000036e7: JUMP 000036e8: JUMPDEST 000036e9: SWAP8 000036ea: SWAP7 000036eb: POP 000036ec: POP 000036ed: POP 000036ee: POP 000036ef: POP 000036f0: POP 000036f1: POP 000036f2: JUMP 000036f3: JUMPDEST 000036f4: PUSH2 0x17f2 000036f7: DUP1 000036f8: PUSH2 0x4197 000036fb: DUP4 000036fc: CODECOPY 000036fd: ADD 000036fe: SWAP1 000036ff: JUMP 00003700: JUMPDEST 00003701: DUP1 00003702: CALLDATALOAD 00003703: PUSH2 0x2312 00003706: DUP2 00003707: PUSH2 0x4173 0000370a: JUMP 0000370b: JUMPDEST 0000370c: PUSH1 0x00 0000370e: DUP3 0000370f: PUSH1 0x1f 00003711: DUP4 00003712: ADD 00003713: SLT 00003714: PUSH2 0x371b 00003717: JUMPI 00003718: DUP1 00003719: DUP2 0000371a: REVERT 0000371b: JUMPDEST 0000371c: DUP2 0000371d: CALLDATALOAD 0000371e: PUSH1 0x20 00003720: PUSH2 0x3730 00003723: PUSH2 0x372b 00003726: DUP4 00003727: PUSH2 0x406e 0000372a: JUMP 0000372b: JUMPDEST 0000372c: PUSH2 0x403d 0000372f: JUMP 00003730: JUMPDEST 00003731: DUP3 00003732: DUP2 00003733: MSTORE 00003734: DUP2 00003735: DUP2 00003736: ADD 00003737: SWAP1 00003738: DUP6 00003739: DUP4 0000373a: ADD 0000373b: DUP4 0000373c: DUP6 0000373d: MUL 0000373e: DUP8 0000373f: ADD 00003740: DUP5 00003741: ADD 00003742: DUP9 00003743: LT 00003744: ISZERO 00003745: PUSH2 0x374c 00003748: JUMPI 00003749: DUP6 0000374a: DUP7 0000374b: REVERT 0000374c: JUMPDEST 0000374d: DUP6 0000374e: JUMPDEST 0000374f: DUP6 00003750: DUP2 00003751: LT 00003752: ISZERO 00003753: PUSH2 0x3773 00003756: JUMPI 00003757: DUP2 00003758: CALLDATALOAD 00003759: PUSH2 0x3761 0000375c: DUP2 0000375d: PUSH2 0x4173 00003760: JUMP 00003761: JUMPDEST 00003762: DUP5 00003763: MSTORE 00003764: SWAP3 00003765: DUP5 00003766: ADD 00003767: SWAP3 00003768: SWAP1 00003769: DUP5 0000376a: ADD 0000376b: SWAP1 0000376c: PUSH1 0x01 0000376e: ADD 0000376f: PUSH2 0x374e 00003772: JUMP 00003773: JUMPDEST 00003774: POP 00003775: SWAP1 00003776: SWAP8 00003777: SWAP7 00003778: POP 00003779: POP 0000377a: POP 0000377b: POP 0000377c: POP 0000377d: POP 0000377e: POP 0000377f: JUMP 00003780: JUMPDEST 00003781: PUSH1 0x00 00003783: DUP3 00003784: PUSH1 0x1f 00003786: DUP4 00003787: ADD 00003788: SLT 00003789: PUSH2 0x3790 0000378c: JUMPI 0000378d: DUP1 0000378e: DUP2 0000378f: REVERT 00003790: JUMPDEST 00003791: DUP2 00003792: CALLDATALOAD 00003793: PUSH1 0x20 00003795: PUSH2 0x37a0 00003798: PUSH2 0x372b 0000379b: DUP4 0000379c: PUSH2 0x406e 0000379f: JUMP 000037a0: JUMPDEST 000037a1: DUP3 000037a2: DUP2 000037a3: MSTORE 000037a4: DUP2 000037a5: DUP2 000037a6: ADD 000037a7: SWAP1 000037a8: DUP6 000037a9: DUP4 000037aa: ADD 000037ab: DUP4 000037ac: DUP6 000037ad: MUL 000037ae: DUP8 000037af: ADD 000037b0: DUP5 000037b1: ADD 000037b2: DUP9 000037b3: LT 000037b4: ISZERO 000037b5: PUSH2 0x37bc 000037b8: JUMPI 000037b9: DUP6 000037ba: DUP7 000037bb: REVERT 000037bc: JUMPDEST 000037bd: DUP6 000037be: JUMPDEST 000037bf: DUP6 000037c0: DUP2 000037c1: LT 000037c2: ISZERO 000037c3: PUSH2 0x3773 000037c6: JUMPI 000037c7: DUP2 000037c8: CALLDATALOAD 000037c9: DUP5 000037ca: MSTORE 000037cb: SWAP3 000037cc: DUP5 000037cd: ADD 000037ce: SWAP3 000037cf: SWAP1 000037d0: DUP5 000037d1: ADD 000037d2: SWAP1 000037d3: PUSH1 0x01 000037d5: ADD 000037d6: PUSH2 0x37be 000037d9: JUMP 000037da: JUMPDEST 000037db: PUSH1 0x00 000037dd: DUP3 000037de: PUSH1 0x1f 000037e0: DUP4 000037e1: ADD 000037e2: SLT 000037e3: PUSH2 0x37ea 000037e6: JUMPI 000037e7: DUP1 000037e8: DUP2 000037e9: REVERT 000037ea: JUMPDEST 000037eb: DUP2 000037ec: CALLDATALOAD 000037ed: PUSH1 0x20 000037ef: PUSH2 0x37fa 000037f2: PUSH2 0x372b 000037f5: DUP4 000037f6: PUSH2 0x406e 000037f9: JUMP 000037fa: JUMPDEST 000037fb: DUP3 000037fc: DUP2 000037fd: MSTORE 000037fe: DUP2 000037ff: DUP2 00003800: ADD 00003801: SWAP1 00003802: DUP6 00003803: DUP4 00003804: ADD 00003805: DUP4 00003806: DUP6 00003807: MUL 00003808: DUP8 00003809: ADD 0000380a: DUP5 0000380b: ADD 0000380c: DUP9 0000380d: LT 0000380e: ISZERO 0000380f: PUSH2 0x3816 00003812: JUMPI 00003813: DUP6 00003814: DUP7 00003815: REVERT 00003816: JUMPDEST 00003817: DUP6 00003818: JUMPDEST 00003819: DUP6 0000381a: DUP2 0000381b: LT 0000381c: ISZERO 0000381d: PUSH2 0x3773 00003820: JUMPI 00003821: PUSH2 0x3829 00003824: DUP3 00003825: PUSH2 0x38a6 00003828: JUMP 00003829: JUMPDEST 0000382a: DUP5 0000382b: MSTORE 0000382c: SWAP3 0000382d: DUP5 0000382e: ADD 0000382f: SWAP3 00003830: SWAP1 00003831: DUP5 00003832: ADD 00003833: SWAP1 00003834: PUSH1 0x01 00003836: ADD 00003837: PUSH2 0x3818 0000383a: JUMP 0000383b: JUMPDEST 0000383c: PUSH1 0x00 0000383e: DUP3 0000383f: PUSH1 0x1f 00003841: DUP4 00003842: ADD 00003843: SLT 00003844: PUSH2 0x384b 00003847: JUMPI 00003848: DUP1 00003849: DUP2 0000384a: REVERT 0000384b: JUMPDEST 0000384c: DUP2 0000384d: CALLDATALOAD 0000384e: PUSH8 0xffffffffffffffff 00003857: DUP2 00003858: GT 00003859: ISZERO 0000385a: PUSH2 0x3865 0000385d: JUMPI 0000385e: PUSH2 0x3865 00003861: PUSH2 0x415d 00003864: JUMP 00003865: JUMPDEST 00003866: PUSH2 0x3878 00003869: PUSH1 0x1f 0000386b: DUP3 0000386c: ADD 0000386d: PUSH1 0x1f 0000386f: NOT 00003870: AND 00003871: PUSH1 0x20 00003873: ADD 00003874: PUSH2 0x403d 00003877: JUMP 00003878: JUMPDEST 00003879: DUP2 0000387a: DUP2 0000387b: MSTORE 0000387c: DUP5 0000387d: PUSH1 0x20 0000387f: DUP4 00003880: DUP7 00003881: ADD 00003882: ADD 00003883: GT 00003884: ISZERO 00003885: PUSH2 0x388c 00003888: JUMPI 00003889: DUP3 0000388a: DUP4 0000388b: REVERT 0000388c: JUMPDEST 0000388d: DUP2 0000388e: PUSH1 0x20 00003890: DUP6 00003891: ADD 00003892: PUSH1 0x20 00003894: DUP4 00003895: ADD 00003896: CALLDATACOPY 00003897: SWAP1 00003898: DUP2 00003899: ADD 0000389a: PUSH1 0x20 0000389c: ADD 0000389d: SWAP2 0000389e: SWAP1 0000389f: SWAP2 000038a0: MSTORE 000038a1: SWAP3 000038a2: SWAP2 000038a3: POP 000038a4: POP 000038a5: JUMP 000038a6: JUMPDEST 000038a7: DUP1 000038a8: CALLDATALOAD 000038a9: PUSH1 0xff 000038ab: DUP2 000038ac: AND 000038ad: DUP2 000038ae: EQ 000038af: PUSH2 0x2312 000038b2: JUMPI 000038b3: PUSH1 0x00 000038b5: DUP1 000038b6: REVERT 000038b7: JUMPDEST 000038b8: PUSH1 0x00 000038ba: PUSH1 0x20 000038bc: DUP3 000038bd: DUP5 000038be: SUB 000038bf: SLT 000038c0: ISZERO 000038c1: PUSH2 0x38c8 000038c4: JUMPI 000038c5: DUP1 000038c6: DUP2 000038c7: REVERT 000038c8: JUMPDEST 000038c9: DUP2 000038ca: CALLDATALOAD 000038cb: PUSH2 0x2fae 000038ce: DUP2 000038cf: PUSH2 0x4173 000038d2: JUMP 000038d3: JUMPDEST 000038d4: PUSH1 0x00 000038d6: DUP1 000038d7: PUSH1 0x00 000038d9: DUP1 000038da: PUSH1 0x00 000038dc: DUP1 000038dd: PUSH1 0x00 000038df: DUP1 000038e0: PUSH1 0x00 000038e2: DUP1 000038e3: PUSH1 0x00 000038e5: PUSH2 0x0160 000038e8: DUP13 000038e9: DUP15 000038ea: SUB 000038eb: SLT 000038ec: ISZERO 000038ed: PUSH2 0x38f4 000038f0: JUMPI 000038f1: DUP7 000038f2: DUP8 000038f3: REVERT 000038f4: JUMPDEST 000038f5: PUSH2 0x38fd 000038f8: DUP13 000038f9: PUSH2 0x3700 000038fc: JUMP 000038fd: JUMPDEST 000038fe: SWAP11 000038ff: POP 00003900: PUSH2 0x390b 00003903: PUSH1 0x20 00003905: DUP14 00003906: ADD 00003907: PUSH2 0x3700 0000390a: JUMP 0000390b: JUMPDEST 0000390c: SWAP10 0000390d: POP 0000390e: PUSH1 0x40 00003910: DUP13 00003911: ADD 00003912: CALLDATALOAD 00003913: SWAP9 00003914: POP 00003915: PUSH8 0xffffffffffffffff 0000391e: DUP1 0000391f: PUSH1 0x60 00003921: DUP15 00003922: ADD 00003923: CALLDATALOAD 00003924: GT 00003925: ISZERO 00003926: PUSH2 0x392d 00003929: JUMPI 0000392a: DUP8 0000392b: DUP9 0000392c: REVERT 0000392d: JUMPDEST 0000392e: PUSH2 0x393d 00003931: DUP15 00003932: PUSH1 0x60 00003934: DUP16 00003935: ADD 00003936: CALLDATALOAD 00003937: DUP16 00003938: ADD 00003939: PUSH2 0x3780 0000393c: JUMP 0000393d: JUMPDEST 0000393e: SWAP9 0000393f: POP 00003940: PUSH1 0x80 00003942: DUP14 00003943: ADD 00003944: CALLDATALOAD 00003945: SWAP8 00003946: POP 00003947: DUP1 00003948: PUSH1 0xa0 0000394a: DUP15 0000394b: ADD 0000394c: CALLDATALOAD 0000394d: GT 0000394e: ISZERO 0000394f: PUSH2 0x3956 00003952: JUMPI 00003953: DUP7 00003954: DUP8 00003955: REVERT 00003956: JUMPDEST 00003957: PUSH2 0x3966 0000395a: DUP15 0000395b: PUSH1 0xa0 0000395d: DUP16 0000395e: ADD 0000395f: CALLDATALOAD 00003960: DUP16 00003961: ADD 00003962: PUSH2 0x3780 00003965: JUMP 00003966: JUMPDEST 00003967: SWAP7 00003968: POP 00003969: DUP1 0000396a: PUSH1 0xc0 0000396c: DUP15 0000396d: ADD 0000396e: CALLDATALOAD 0000396f: GT 00003970: ISZERO 00003971: PUSH2 0x3978 00003974: JUMPI 00003975: DUP6 00003976: DUP7 00003977: REVERT 00003978: JUMPDEST 00003979: PUSH2 0x3988 0000397c: DUP15 0000397d: PUSH1 0xc0 0000397f: DUP16 00003980: ADD 00003981: CALLDATALOAD 00003982: DUP16 00003983: ADD 00003984: PUSH2 0x3780 00003987: JUMP 00003988: JUMPDEST 00003989: SWAP6 0000398a: POP 0000398b: DUP1 0000398c: PUSH1 0xe0 0000398e: DUP15 0000398f: ADD 00003990: CALLDATALOAD 00003991: GT 00003992: ISZERO 00003993: PUSH2 0x399a 00003996: JUMPI 00003997: DUP5 00003998: DUP6 00003999: REVERT 0000399a: JUMPDEST 0000399b: PUSH2 0x39aa 0000399e: DUP15 0000399f: PUSH1 0xe0 000039a1: DUP16 000039a2: ADD 000039a3: CALLDATALOAD 000039a4: DUP16 000039a5: ADD 000039a6: PUSH2 0x37da 000039a9: JUMP 000039aa: JUMPDEST 000039ab: SWAP5 000039ac: POP 000039ad: DUP1 000039ae: PUSH2 0x0100 000039b1: DUP15 000039b2: ADD 000039b3: CALLDATALOAD 000039b4: GT 000039b5: ISZERO 000039b6: PUSH2 0x39bd 000039b9: JUMPI 000039ba: DUP4 000039bb: DUP5 000039bc: REVERT 000039bd: JUMPDEST 000039be: PUSH2 0x39ce 000039c1: DUP15 000039c2: PUSH2 0x0100 000039c5: DUP16 000039c6: ADD 000039c7: CALLDATALOAD 000039c8: DUP16 000039c9: ADD 000039ca: PUSH2 0x383b 000039cd: JUMP 000039ce: JUMPDEST 000039cf: SWAP4 000039d0: POP 000039d1: DUP1 000039d2: PUSH2 0x0120 000039d5: DUP15 000039d6: ADD 000039d7: CALLDATALOAD 000039d8: GT 000039d9: ISZERO 000039da: PUSH2 0x39e1 000039dd: JUMPI 000039de: DUP3 000039df: DUP4 000039e0: REVERT 000039e1: JUMPDEST 000039e2: POP 000039e3: PUSH2 0x39f3 000039e6: DUP14 000039e7: PUSH2 0x0120 000039ea: DUP15 000039eb: ADD 000039ec: CALLDATALOAD 000039ed: DUP15 000039ee: ADD 000039ef: PUSH2 0x383b 000039f2: JUMP 000039f3: JUMPDEST 000039f4: SWAP2 000039f5: POP 000039f6: PUSH2 0x3a02 000039f9: PUSH2 0x0140 000039fc: DUP14 000039fd: ADD 000039fe: PUSH2 0x38a6 00003a01: JUMP 00003a02: JUMPDEST 00003a03: SWAP1 00003a04: POP 00003a05: SWAP3 00003a06: SWAP6 00003a07: SWAP9 00003a08: SWAP12 00003a09: POP 00003a0a: SWAP3 00003a0b: SWAP6 00003a0c: SWAP9 00003a0d: SWAP12 00003a0e: SWAP1 00003a0f: SWAP4 00003a10: SWAP7 00003a11: SWAP10 00003a12: POP 00003a13: JUMP 00003a14: JUMPDEST 00003a15: PUSH1 0x00 00003a17: DUP1 00003a18: PUSH1 0x40 00003a1a: DUP4 00003a1b: DUP6 00003a1c: SUB 00003a1d: SLT 00003a1e: ISZERO 00003a1f: PUSH2 0x3a26 00003a22: JUMPI 00003a23: DUP2 00003a24: DUP3 00003a25: REVERT 00003a26: JUMPDEST 00003a27: DUP3 00003a28: CALLDATALOAD 00003a29: PUSH2 0x3a31 00003a2c: DUP2 00003a2d: PUSH2 0x4173 00003a30: JUMP 00003a31: JUMPDEST 00003a32: SWAP2 00003a33: POP 00003a34: PUSH1 0x20 00003a36: DUP4 00003a37: ADD 00003a38: CALLDATALOAD 00003a39: PUSH8 0xffffffffffffffff 00003a42: DUP2 00003a43: GT 00003a44: ISZERO 00003a45: PUSH2 0x3a4c 00003a48: JUMPI 00003a49: DUP2 00003a4a: DUP3 00003a4b: REVERT 00003a4c: JUMPDEST 00003a4d: PUSH2 0x3a58 00003a50: DUP6 00003a51: DUP3 00003a52: DUP7 00003a53: ADD 00003a54: PUSH2 0x383b 00003a57: JUMP 00003a58: JUMPDEST 00003a59: SWAP2 00003a5a: POP 00003a5b: POP 00003a5c: SWAP3 00003a5d: POP 00003a5e: SWAP3 00003a5f: SWAP1 00003a60: POP 00003a61: JUMP 00003a62: JUMPDEST 00003a63: PUSH1 0x00 00003a65: DUP1 00003a66: PUSH1 0x00 00003a68: DUP1 00003a69: PUSH1 0x80 00003a6b: DUP6 00003a6c: DUP8 00003a6d: SUB 00003a6e: SLT 00003a6f: ISZERO 00003a70: PUSH2 0x3a77 00003a73: JUMPI 00003a74: DUP2 00003a75: DUP3 00003a76: REVERT 00003a77: JUMPDEST 00003a78: DUP5 00003a79: CALLDATALOAD 00003a7a: PUSH2 0x3a82 00003a7d: DUP2 00003a7e: PUSH2 0x4173 00003a81: JUMP 00003a82: JUMPDEST 00003a83: SWAP4 00003a84: POP 00003a85: PUSH1 0x20 00003a87: DUP6 00003a88: ADD 00003a89: CALLDATALOAD 00003a8a: PUSH8 0xffffffffffffffff 00003a93: DUP2 00003a94: GT 00003a95: ISZERO 00003a96: PUSH2 0x3a9d 00003a99: JUMPI 00003a9a: DUP3 00003a9b: DUP4 00003a9c: REVERT 00003a9d: JUMPDEST 00003a9e: PUSH2 0x3aa9 00003aa1: DUP8 00003aa2: DUP3 00003aa3: DUP9 00003aa4: ADD 00003aa5: PUSH2 0x383b 00003aa8: JUMP 00003aa9: JUMPDEST 00003aaa: SWAP5 00003aab: SWAP8 00003aac: SWAP5 00003aad: SWAP7 00003aae: POP 00003aaf: POP 00003ab0: POP 00003ab1: POP 00003ab2: PUSH1 0x40 00003ab4: DUP4 00003ab5: ADD 00003ab6: CALLDATALOAD 00003ab7: SWAP3 00003ab8: PUSH1 0x60 00003aba: ADD 00003abb: CALLDATALOAD 00003abc: SWAP2 00003abd: SWAP1 00003abe: POP 00003abf: JUMP 00003ac0: JUMPDEST 00003ac1: PUSH1 0x00 00003ac3: DUP1 00003ac4: PUSH1 0x40 00003ac6: DUP4 00003ac7: DUP6 00003ac8: SUB 00003ac9: SLT 00003aca: ISZERO 00003acb: PUSH2 0x3ad2 00003ace: JUMPI 00003acf: DUP2 00003ad0: DUP3 00003ad1: REVERT 00003ad2: JUMPDEST 00003ad3: DUP3 00003ad4: CALLDATALOAD 00003ad5: PUSH2 0x3add 00003ad8: DUP2 00003ad9: PUSH2 0x4173 00003adc: JUMP 00003add: JUMPDEST 00003ade: SWAP5 00003adf: PUSH1 0x20 00003ae1: SWAP4 00003ae2: SWAP1 00003ae3: SWAP4 00003ae4: ADD 00003ae5: CALLDATALOAD 00003ae6: SWAP4 00003ae7: POP 00003ae8: POP 00003ae9: POP 00003aea: JUMP 00003aeb: JUMPDEST 00003aec: PUSH1 0x00 00003aee: PUSH1 0x20 00003af0: DUP3 00003af1: DUP5 00003af2: SUB 00003af3: SLT 00003af4: ISZERO 00003af5: PUSH2 0x3afc 00003af8: JUMPI 00003af9: DUP1 00003afa: DUP2 00003afb: REVERT 00003afc: JUMPDEST 00003afd: DUP2 00003afe: CALLDATALOAD 00003aff: PUSH8 0xffffffffffffffff 00003b08: DUP2 00003b09: GT 00003b0a: ISZERO 00003b0b: PUSH2 0x3b12 00003b0e: JUMPI 00003b0f: DUP2 00003b10: DUP3 00003b11: REVERT 00003b12: JUMPDEST 00003b13: PUSH2 0x35c3 00003b16: DUP5 00003b17: DUP3 00003b18: DUP6 00003b19: ADD 00003b1a: PUSH2 0x370b 00003b1d: JUMP 00003b1e: JUMPDEST 00003b1f: PUSH1 0x00 00003b21: PUSH1 0x20 00003b23: DUP3 00003b24: DUP5 00003b25: SUB 00003b26: SLT 00003b27: ISZERO 00003b28: PUSH2 0x3b2f 00003b2b: JUMPI 00003b2c: DUP1 00003b2d: DUP2 00003b2e: REVERT 00003b2f: JUMPDEST 00003b30: DUP2 00003b31: CALLDATALOAD 00003b32: PUSH8 0xffffffffffffffff 00003b3b: DUP2 00003b3c: GT 00003b3d: ISZERO 00003b3e: PUSH2 0x3b45 00003b41: JUMPI 00003b42: DUP2 00003b43: DUP3 00003b44: REVERT 00003b45: JUMPDEST 00003b46: PUSH2 0x35c3 00003b49: DUP5 00003b4a: DUP3 00003b4b: DUP6 00003b4c: ADD 00003b4d: PUSH2 0x3780 00003b50: JUMP 00003b51: JUMPDEST 00003b52: PUSH1 0x00 00003b54: DUP1 00003b55: PUSH1 0x00 00003b57: PUSH1 0x60 00003b59: DUP5 00003b5a: DUP7 00003b5b: SUB 00003b5c: SLT 00003b5d: ISZERO 00003b5e: PUSH2 0x3b65 00003b61: JUMPI 00003b62: DUP1 00003b63: DUP2 00003b64: REVERT 00003b65: JUMPDEST 00003b66: DUP4 00003b67: CALLDATALOAD 00003b68: PUSH8 0xffffffffffffffff 00003b71: DUP1 00003b72: DUP3 00003b73: GT 00003b74: ISZERO 00003b75: PUSH2 0x3b7c 00003b78: JUMPI 00003b79: DUP3 00003b7a: DUP4 00003b7b: REVERT 00003b7c: JUMPDEST 00003b7d: PUSH2 0x3b88 00003b80: DUP8 00003b81: DUP4 00003b82: DUP9 00003b83: ADD 00003b84: PUSH2 0x3780 00003b87: JUMP 00003b88: JUMPDEST 00003b89: SWAP5 00003b8a: POP 00003b8b: PUSH1 0x20 00003b8d: DUP7 00003b8e: ADD 00003b8f: CALLDATALOAD 00003b90: SWAP2 00003b91: POP 00003b92: DUP1 00003b93: DUP3 00003b94: GT 00003b95: ISZERO 00003b96: PUSH2 0x3b9d 00003b99: JUMPI 00003b9a: DUP3 00003b9b: DUP4 00003b9c: REVERT 00003b9d: JUMPDEST 00003b9e: PUSH2 0x3ba9 00003ba1: DUP8 00003ba2: DUP4 00003ba3: DUP9 00003ba4: ADD 00003ba5: PUSH2 0x370b 00003ba8: JUMP 00003ba9: JUMPDEST 00003baa: SWAP4 00003bab: POP 00003bac: PUSH1 0x40 00003bae: DUP7 00003baf: ADD 00003bb0: CALLDATALOAD 00003bb1: SWAP2 00003bb2: POP 00003bb3: DUP1 00003bb4: DUP3 00003bb5: GT 00003bb6: ISZERO 00003bb7: PUSH2 0x3bbe 00003bba: JUMPI 00003bbb: DUP3 00003bbc: DUP4 00003bbd: REVERT 00003bbe: JUMPDEST 00003bbf: POP 00003bc0: PUSH2 0x3bcb 00003bc3: DUP7 00003bc4: DUP3 00003bc5: DUP8 00003bc6: ADD 00003bc7: PUSH2 0x3780 00003bca: JUMP 00003bcb: JUMPDEST 00003bcc: SWAP2 00003bcd: POP 00003bce: POP 00003bcf: SWAP3 00003bd0: POP 00003bd1: SWAP3 00003bd2: POP 00003bd3: SWAP3 00003bd4: JUMP 00003bd5: JUMPDEST 00003bd6: PUSH1 0x00 00003bd8: DUP1 00003bd9: PUSH1 0x40 00003bdb: DUP4 00003bdc: DUP6 00003bdd: SUB 00003bde: SLT 00003bdf: ISZERO 00003be0: PUSH2 0x3be7 00003be3: JUMPI 00003be4: DUP2 00003be5: DUP3 00003be6: REVERT 00003be7: JUMPDEST 00003be8: DUP3 00003be9: CALLDATALOAD 00003bea: PUSH8 0xffffffffffffffff 00003bf3: DUP2 00003bf4: GT 00003bf5: ISZERO 00003bf6: PUSH2 0x3bfd 00003bf9: JUMPI 00003bfa: DUP3 00003bfb: DUP4 00003bfc: REVERT 00003bfd: JUMPDEST 00003bfe: PUSH2 0x3c09 00003c01: DUP6 00003c02: DUP3 00003c03: DUP7 00003c04: ADD 00003c05: PUSH2 0x3780 00003c08: JUMP 00003c09: JUMPDEST 00003c0a: SWAP3 00003c0b: POP 00003c0c: POP 00003c0d: PUSH1 0x20 00003c0f: DUP4 00003c10: ADD 00003c11: CALLDATALOAD 00003c12: PUSH2 0x3c1a 00003c15: DUP2 00003c16: PUSH2 0x4188 00003c19: JUMP 00003c1a: JUMPDEST 00003c1b: DUP1 00003c1c: SWAP2 00003c1d: POP 00003c1e: POP 00003c1f: SWAP3 00003c20: POP 00003c21: SWAP3 00003c22: SWAP1 00003c23: POP 00003c24: JUMP 00003c25: JUMPDEST 00003c26: PUSH1 0x00 00003c28: PUSH1 0x20 00003c2a: DUP3 00003c2b: DUP5 00003c2c: SUB 00003c2d: SLT 00003c2e: ISZERO 00003c2f: PUSH2 0x3c36 00003c32: JUMPI 00003c33: DUP1 00003c34: DUP2 00003c35: REVERT 00003c36: JUMPDEST 00003c37: DUP2 00003c38: MLOAD 00003c39: PUSH2 0x2fae 00003c3c: DUP2 00003c3d: PUSH2 0x4188 00003c40: JUMP 00003c41: JUMPDEST 00003c42: PUSH1 0x00 00003c44: PUSH1 0x20 00003c46: DUP3 00003c47: DUP5 00003c48: SUB 00003c49: SLT 00003c4a: ISZERO 00003c4b: PUSH2 0x3c52 00003c4e: JUMPI 00003c4f: DUP1 00003c50: DUP2 00003c51: REVERT 00003c52: JUMPDEST 00003c53: POP 00003c54: CALLDATALOAD 00003c55: SWAP2 00003c56: SWAP1 00003c57: POP 00003c58: JUMP 00003c59: JUMPDEST 00003c5a: PUSH1 0x00 00003c5c: PUSH1 0x20 00003c5e: DUP3 00003c5f: DUP5 00003c60: SUB 00003c61: SLT 00003c62: ISZERO 00003c63: PUSH2 0x3c6a 00003c66: JUMPI 00003c67: DUP1 00003c68: DUP2 00003c69: REVERT 00003c6a: JUMPDEST 00003c6b: POP 00003c6c: MLOAD 00003c6d: SWAP2 00003c6e: SWAP1 00003c6f: POP 00003c70: JUMP 00003c71: JUMPDEST 00003c72: PUSH1 0x00 00003c74: DUP1 00003c75: PUSH1 0x40 00003c77: DUP4 00003c78: DUP6 00003c79: SUB 00003c7a: SLT 00003c7b: ISZERO 00003c7c: PUSH2 0x3c83 00003c7f: JUMPI 00003c80: DUP2 00003c81: DUP3 00003c82: REVERT 00003c83: JUMPDEST 00003c84: DUP3 00003c85: CALLDATALOAD 00003c86: SWAP2 00003c87: POP 00003c88: PUSH1 0x20 00003c8a: DUP4 00003c8b: ADD 00003c8c: CALLDATALOAD 00003c8d: PUSH2 0x3c1a 00003c90: DUP2 00003c91: PUSH2 0x4173 00003c94: JUMP 00003c95: JUMPDEST 00003c96: PUSH1 0x00 00003c98: DUP1 00003c99: PUSH1 0x40 00003c9b: DUP4 00003c9c: DUP6 00003c9d: SUB 00003c9e: SLT 00003c9f: ISZERO 00003ca0: PUSH2 0x3ca7 00003ca3: JUMPI 00003ca4: DUP2 00003ca5: DUP3 00003ca6: REVERT 00003ca7: JUMPDEST 00003ca8: DUP3 00003ca9: CALLDATALOAD 00003caa: SWAP2 00003cab: POP 00003cac: PUSH1 0x20 00003cae: DUP4 00003caf: ADD 00003cb0: CALLDATALOAD 00003cb1: PUSH2 0x3c1a 00003cb4: DUP2 00003cb5: PUSH2 0x4188 00003cb8: JUMP 00003cb9: JUMPDEST 00003cba: PUSH1 0x00 00003cbc: DUP2 00003cbd: MLOAD 00003cbe: DUP1 00003cbf: DUP5 00003cc0: MSTORE 00003cc1: PUSH1 0x20 00003cc3: DUP1 00003cc4: DUP6 00003cc5: ADD 00003cc6: SWAP5 00003cc7: POP 00003cc8: DUP1 00003cc9: DUP5 00003cca: ADD 00003ccb: DUP4 00003ccc: JUMPDEST 00003ccd: DUP4 00003cce: DUP2 00003ccf: LT 00003cd0: ISZERO 00003cd1: PUSH2 0x3ce8 00003cd4: JUMPI 00003cd5: DUP2 00003cd6: MLOAD 00003cd7: DUP8 00003cd8: MSTORE 00003cd9: SWAP6 00003cda: DUP3 00003cdb: ADD 00003cdc: SWAP6 00003cdd: SWAP1 00003cde: DUP3 00003cdf: ADD 00003ce0: SWAP1 00003ce1: PUSH1 0x01 00003ce3: ADD 00003ce4: PUSH2 0x3ccc 00003ce7: JUMP 00003ce8: JUMPDEST 00003ce9: POP 00003cea: SWAP5 00003ceb: SWAP6 00003cec: SWAP5 00003ced: POP 00003cee: POP 00003cef: POP 00003cf0: POP 00003cf1: POP 00003cf2: JUMP 00003cf3: JUMPDEST 00003cf4: PUSH1 0x00 00003cf6: DUP2 00003cf7: MLOAD 00003cf8: DUP1 00003cf9: DUP5 00003cfa: MSTORE 00003cfb: PUSH2 0x3d0b 00003cfe: DUP2 00003cff: PUSH1 0x20 00003d01: DUP7 00003d02: ADD 00003d03: PUSH1 0x20 00003d05: DUP7 00003d06: ADD 00003d07: PUSH2 0x4100 00003d0a: JUMP 00003d0b: JUMPDEST 00003d0c: PUSH1 0x1f 00003d0e: ADD 00003d0f: PUSH1 0x1f 00003d11: NOT 00003d12: AND 00003d13: SWAP3 00003d14: SWAP1 00003d15: SWAP3 00003d16: ADD 00003d17: PUSH1 0x20 00003d19: ADD 00003d1a: SWAP3 00003d1b: SWAP2 00003d1c: POP 00003d1d: POP 00003d1e: JUMP 00003d1f: JUMPDEST 00003d20: PUSH1 0x00 00003d22: DUP3 00003d23: MLOAD 00003d24: PUSH2 0x3d31 00003d27: DUP2 00003d28: DUP5 00003d29: PUSH1 0x20 00003d2b: DUP8 00003d2c: ADD 00003d2d: PUSH2 0x4100 00003d30: JUMP 00003d31: JUMPDEST 00003d32: SWAP2 00003d33: SWAP1 00003d34: SWAP2 00003d35: ADD 00003d36: SWAP3 00003d37: SWAP2 00003d38: POP 00003d39: POP 00003d3a: JUMP 00003d3b: JUMPDEST 00003d3c: PUSH1 0x01 00003d3e: PUSH1 0x01 00003d40: PUSH1 0xa0 00003d42: SHL 00003d43: SUB 00003d44: DUP7 00003d45: DUP2 00003d46: AND 00003d47: DUP3 00003d48: MSTORE 00003d49: DUP6 00003d4a: AND 00003d4b: PUSH1 0x20 00003d4d: DUP3 00003d4e: ADD 00003d4f: MSTORE 00003d50: PUSH1 0x40 00003d52: DUP2 00003d53: ADD 00003d54: DUP5 00003d55: SWAP1 00003d56: MSTORE 00003d57: PUSH1 0xa0 00003d59: PUSH1 0x60 00003d5b: DUP3 00003d5c: ADD 00003d5d: DUP2 00003d5e: SWAP1 00003d5f: MSTORE 00003d60: PUSH1 0x00 00003d62: SWAP1 00003d63: PUSH2 0x3d6e 00003d66: SWAP1 00003d67: DUP4 00003d68: ADD 00003d69: DUP6 00003d6a: PUSH2 0x3cb9 00003d6d: JUMP 00003d6e: JUMPDEST 00003d6f: SWAP1 00003d70: POP 00003d71: DUP3 00003d72: PUSH1 0x80 00003d74: DUP4 00003d75: ADD 00003d76: MSTORE 00003d77: SWAP7 00003d78: SWAP6 00003d79: POP 00003d7a: POP 00003d7b: POP 00003d7c: POP 00003d7d: POP 00003d7e: POP 00003d7f: JUMP 00003d80: JUMPDEST 00003d81: PUSH1 0x01 00003d83: PUSH1 0x01 00003d85: PUSH1 0xa0 00003d87: SHL 00003d88: SUB 00003d89: DUP10 00003d8a: DUP2 00003d8b: AND 00003d8c: DUP3 00003d8d: MSTORE 00003d8e: DUP9 00003d8f: AND 00003d90: PUSH1 0x20 00003d92: DUP3 00003d93: ADD 00003d94: MSTORE 00003d95: PUSH1 0x40 00003d97: DUP2 00003d98: ADD 00003d99: DUP8 00003d9a: SWAP1 00003d9b: MSTORE 00003d9c: PUSH2 0x0100 00003d9f: PUSH1 0x60 00003da1: DUP3 00003da2: ADD 00003da3: DUP2 00003da4: SWAP1 00003da5: MSTORE 00003da6: PUSH1 0x00 00003da8: SWAP1 00003da9: PUSH2 0x3db4 00003dac: DUP4 00003dad: DUP3 00003dae: ADD 00003daf: DUP10 00003db0: PUSH2 0x3cb9 00003db3: JUMP 00003db4: JUMPDEST 00003db5: SWAP1 00003db6: POP 00003db7: DUP7 00003db8: PUSH1 0x80 00003dba: DUP5 00003dbb: ADD 00003dbc: MSTORE 00003dbd: DUP3 00003dbe: DUP2 00003dbf: SUB 00003dc0: PUSH1 0xa0 00003dc2: DUP5 00003dc3: ADD 00003dc4: MSTORE 00003dc5: PUSH2 0x3dce 00003dc8: DUP2 00003dc9: DUP8 00003dca: PUSH2 0x3cf3 00003dcd: JUMP 00003dce: JUMPDEST 00003dcf: SWAP1 00003dd0: POP 00003dd1: DUP3 00003dd2: DUP2 00003dd3: SUB 00003dd4: PUSH1 0xc0 00003dd6: DUP5 00003dd7: ADD 00003dd8: MSTORE 00003dd9: PUSH2 0x3de2 00003ddc: DUP2 00003ddd: DUP7 00003dde: PUSH2 0x3cf3 00003de1: JUMP 00003de2: JUMPDEST 00003de3: SWAP2 00003de4: POP 00003de5: POP 00003de6: PUSH1 0xff 00003de8: DUP4 00003de9: AND 00003dea: PUSH1 0xe0 00003dec: DUP4 00003ded: ADD 00003dee: MSTORE 00003def: SWAP10 00003df0: SWAP9 00003df1: POP 00003df2: POP 00003df3: POP 00003df4: POP 00003df5: POP 00003df6: POP 00003df7: POP 00003df8: POP 00003df9: POP 00003dfa: JUMP 00003dfb: JUMPDEST 00003dfc: PUSH1 0x00 00003dfe: PUSH1 0x01 00003e00: DUP1 00003e01: PUSH1 0xa0 00003e03: SHL 00003e04: SUB 00003e05: DUP8 00003e06: AND 00003e07: DUP3 00003e08: MSTORE 00003e09: DUP6 00003e0a: PUSH1 0x20 00003e0c: DUP4 00003e0d: ADD 00003e0e: MSTORE 00003e0f: PUSH1 0xa0 00003e11: PUSH1 0x40 00003e13: DUP4 00003e14: ADD 00003e15: MSTORE 00003e16: PUSH2 0x3e22 00003e19: PUSH1 0xa0 00003e1b: DUP4 00003e1c: ADD 00003e1d: DUP7 00003e1e: PUSH2 0x3cf3 00003e21: JUMP 00003e22: JUMPDEST 00003e23: DUP3 00003e24: DUP2 00003e25: SUB 00003e26: PUSH1 0x60 00003e28: DUP5 00003e29: ADD 00003e2a: MSTORE 00003e2b: PUSH2 0x3e34 00003e2e: DUP2 00003e2f: DUP7 00003e30: PUSH2 0x3cf3 00003e33: JUMP 00003e34: JUMPDEST 00003e35: SWAP2 00003e36: POP 00003e37: POP 00003e38: PUSH1 0xff 00003e3a: DUP4 00003e3b: AND 00003e3c: PUSH1 0x80 00003e3e: DUP4 00003e3f: ADD 00003e40: MSTORE 00003e41: SWAP7 00003e42: SWAP6 00003e43: POP 00003e44: POP 00003e45: POP 00003e46: POP 00003e47: POP 00003e48: POP 00003e49: JUMP 00003e4a: JUMPDEST 00003e4b: PUSH1 0x20 00003e4d: DUP1 00003e4e: DUP3 00003e4f: MSTORE 00003e50: DUP3 00003e51: MLOAD 00003e52: DUP3 00003e53: DUP3 00003e54: ADD 00003e55: DUP2 00003e56: SWAP1 00003e57: MSTORE 00003e58: PUSH1 0x00 00003e5a: SWAP2 00003e5b: SWAP1 00003e5c: DUP5 00003e5d: DUP3 00003e5e: ADD 00003e5f: SWAP1 00003e60: PUSH1 0x40 00003e62: DUP6 00003e63: ADD 00003e64: SWAP1 00003e65: DUP5 00003e66: JUMPDEST 00003e67: DUP2 00003e68: DUP2 00003e69: LT 00003e6a: ISZERO 00003e6b: PUSH2 0x3e8b 00003e6e: JUMPI 00003e6f: DUP4 00003e70: MLOAD 00003e71: PUSH1 0x01 00003e73: PUSH1 0x01 00003e75: PUSH1 0xa0 00003e77: SHL 00003e78: SUB 00003e79: AND 00003e7a: DUP4 00003e7b: MSTORE 00003e7c: SWAP3 00003e7d: DUP5 00003e7e: ADD 00003e7f: SWAP3 00003e80: SWAP2 00003e81: DUP5 00003e82: ADD 00003e83: SWAP2 00003e84: PUSH1 0x01 00003e86: ADD 00003e87: PUSH2 0x3e66 00003e8a: JUMP 00003e8b: JUMPDEST 00003e8c: POP 00003e8d: SWAP1 00003e8e: SWAP7 00003e8f: SWAP6 00003e90: POP 00003e91: POP 00003e92: POP 00003e93: POP 00003e94: POP 00003e95: POP 00003e96: JUMP 00003e97: JUMPDEST 00003e98: PUSH1 0x00 00003e9a: PUSH1 0x20 00003e9c: DUP3 00003e9d: MSTORE 00003e9e: PUSH2 0x2fae 00003ea1: PUSH1 0x20 00003ea3: DUP4 00003ea4: ADD 00003ea5: DUP5 00003ea6: PUSH2 0x3cb9 00003ea9: JUMP 00003eaa: JUMPDEST 00003eab: PUSH1 0x00 00003ead: PUSH1 0xc0 00003eaf: DUP3 00003eb0: MSTORE 00003eb1: PUSH2 0x3ebd 00003eb4: PUSH1 0xc0 00003eb6: DUP4 00003eb7: ADD 00003eb8: DUP10 00003eb9: PUSH2 0x3cf3 00003ebc: JUMP 00003ebd: JUMPDEST 00003ebe: PUSH1 0x20 00003ec0: DUP4 00003ec1: ADD 00003ec2: SWAP8 00003ec3: SWAP1 00003ec4: SWAP8 00003ec5: MSTORE 00003ec6: POP 00003ec7: PUSH1 0x40 00003ec9: DUP2 00003eca: ADD 00003ecb: SWAP5 00003ecc: SWAP1 00003ecd: SWAP5 00003ece: MSTORE 00003ecf: PUSH1 0x60 00003ed1: DUP5 00003ed2: ADD 00003ed3: SWAP3 00003ed4: SWAP1 00003ed5: SWAP3 00003ed6: MSTORE 00003ed7: PUSH1 0x80 00003ed9: DUP4 00003eda: ADD 00003edb: MSTORE 00003edc: PUSH1 0xa0 00003ede: SWAP1 00003edf: SWAP2 00003ee0: ADD 00003ee1: MSTORE 00003ee2: SWAP2 00003ee3: SWAP1 00003ee4: POP 00003ee5: JUMP 00003ee6: JUMPDEST 00003ee7: PUSH1 0x00 00003ee9: PUSH1 0x20 00003eeb: DUP3 00003eec: MSTORE 00003eed: PUSH2 0x2fae 00003ef0: PUSH1 0x20 00003ef2: DUP4 00003ef3: ADD 00003ef4: DUP5 00003ef5: PUSH2 0x3cf3 00003ef8: JUMP 00003ef9: JUMPDEST 00003efa: PUSH1 0x20 00003efc: DUP1 00003efd: DUP3 00003efe: MSTORE 00003eff: PUSH1 0x2c 00003f01: SWAP1 00003f02: DUP3 00003f03: ADD 00003f04: MSTORE 00003f05: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 00003f26: PUSH1 0x40 00003f28: DUP3 00003f29: ADD 00003f2a: MSTORE 00003f2b: PUSH12 0x19195b1959d85d1958d85b1b 00003f38: PUSH1 0xa2 00003f3a: SHL 00003f3b: PUSH1 0x60 00003f3d: DUP3 00003f3e: ADD 00003f3f: MSTORE 00003f40: PUSH1 0x80 00003f42: ADD 00003f43: SWAP1 00003f44: JUMP 00003f45: JUMPDEST 00003f46: PUSH1 0x20 00003f48: DUP1 00003f49: DUP3 00003f4a: MSTORE 00003f4b: PUSH1 0x2c 00003f4d: SWAP1 00003f4e: DUP3 00003f4f: ADD 00003f50: MSTORE 00003f51: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 00003f72: PUSH1 0x40 00003f74: DUP3 00003f75: ADD 00003f76: MSTORE 00003f77: PUSH12 0x6163746976652070726f7879 00003f84: PUSH1 0xa0 00003f86: SHL 00003f87: PUSH1 0x60 00003f89: DUP3 00003f8a: ADD 00003f8b: MSTORE 00003f8c: PUSH1 0x80 00003f8e: ADD 00003f8f: SWAP1 00003f90: JUMP 00003f91: JUMPDEST 00003f92: PUSH1 0x20 00003f94: DUP1 00003f95: DUP3 00003f96: MSTORE 00003f97: PUSH1 0x0f 00003f99: SWAP1 00003f9a: DUP3 00003f9b: ADD 00003f9c: MSTORE 00003f9d: PUSH15 0x216f6e6c79476f7665726e616e6365 00003fad: PUSH1 0x88 00003faf: SHL 00003fb0: PUSH1 0x40 00003fb2: DUP3 00003fb3: ADD 00003fb4: MSTORE 00003fb5: PUSH1 0x60 00003fb7: ADD 00003fb8: SWAP1 00003fb9: JUMP 00003fba: JUMPDEST 00003fbb: PUSH1 0x20 00003fbd: DUP1 00003fbe: DUP3 00003fbf: MSTORE 00003fc0: PUSH1 0x2e 00003fc2: SWAP1 00003fc3: DUP3 00003fc4: ADD 00003fc5: MSTORE 00003fc6: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00003fe7: PUSH1 0x40 00003fe9: DUP3 00003fea: ADD 00003feb: MSTORE 00003fec: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 00003ffb: PUSH1 0x92 00003ffd: SHL 00003ffe: PUSH1 0x60 00004000: DUP3 00004001: ADD 00004002: MSTORE 00004003: PUSH1 0x80 00004005: ADD 00004006: SWAP1 00004007: JUMP 00004008: JUMPDEST 00004009: PUSH1 0x20 0000400b: DUP1 0000400c: DUP3 0000400d: MSTORE 0000400e: DUP2 0000400f: DUP2 00004010: ADD 00004011: MSTORE 00004012: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00004033: PUSH1 0x40 00004035: DUP3 00004036: ADD 00004037: MSTORE 00004038: PUSH1 0x60 0000403a: ADD 0000403b: SWAP1 0000403c: JUMP 0000403d: JUMPDEST 0000403e: PUSH1 0x40 00004040: MLOAD 00004041: PUSH1 0x1f 00004043: DUP3 00004044: ADD 00004045: PUSH1 0x1f 00004047: NOT 00004048: AND 00004049: DUP2 0000404a: ADD 0000404b: PUSH8 0xffffffffffffffff 00004054: DUP2 00004055: GT 00004056: DUP3 00004057: DUP3 00004058: LT 00004059: OR 0000405a: ISZERO 0000405b: PUSH2 0x4066 0000405e: JUMPI 0000405f: PUSH2 0x4066 00004062: PUSH2 0x415d 00004065: JUMP 00004066: JUMPDEST 00004067: PUSH1 0x40 00004069: MSTORE 0000406a: SWAP2 0000406b: SWAP1 0000406c: POP 0000406d: JUMP 0000406e: JUMPDEST 0000406f: PUSH1 0x00 00004071: PUSH8 0xffffffffffffffff 0000407a: DUP3 0000407b: GT 0000407c: ISZERO 0000407d: PUSH2 0x4088 00004080: JUMPI 00004081: PUSH2 0x4088 00004084: PUSH2 0x415d 00004087: JUMP 00004088: JUMPDEST 00004089: POP 0000408a: PUSH1 0x20 0000408c: SWAP1 0000408d: DUP2 0000408e: MUL 0000408f: ADD 00004090: SWAP1 00004091: JUMP 00004092: JUMPDEST 00004093: PUSH1 0x00 00004095: DUP3 00004096: NOT 00004097: DUP3 00004098: GT 00004099: ISZERO 0000409a: PUSH2 0x40a5 0000409d: JUMPI 0000409e: PUSH2 0x40a5 000040a1: PUSH2 0x4147 000040a4: JUMP 000040a5: JUMPDEST 000040a6: POP 000040a7: ADD 000040a8: SWAP1 000040a9: JUMP 000040aa: JUMPDEST 000040ab: PUSH1 0x00 000040ad: DUP3 000040ae: PUSH2 0x40c5 000040b1: JUMPI 000040b2: PUSH4 0x4e487b71 000040b7: PUSH1 0xe0 000040b9: SHL 000040ba: DUP2 000040bb: MSTORE 000040bc: PUSH1 0x12 000040be: PUSH1 0x04 000040c0: MSTORE 000040c1: PUSH1 0x24 000040c3: DUP2 000040c4: REVERT 000040c5: JUMPDEST 000040c6: POP 000040c7: DIV 000040c8: SWAP1 000040c9: JUMP 000040ca: JUMPDEST 000040cb: PUSH1 0x00 000040cd: DUP2 000040ce: PUSH1 0x00 000040d0: NOT 000040d1: DIV 000040d2: DUP4 000040d3: GT 000040d4: DUP3 000040d5: ISZERO 000040d6: ISZERO 000040d7: AND 000040d8: ISZERO 000040d9: PUSH2 0x40e4 000040dc: JUMPI 000040dd: PUSH2 0x40e4 000040e0: PUSH2 0x4147 000040e3: JUMP 000040e4: JUMPDEST 000040e5: POP 000040e6: MUL 000040e7: SWAP1 000040e8: JUMP 000040e9: JUMPDEST 000040ea: PUSH1 0x00 000040ec: DUP3 000040ed: DUP3 000040ee: LT 000040ef: ISZERO 000040f0: PUSH2 0x40fb 000040f3: JUMPI 000040f4: PUSH2 0x40fb 000040f7: PUSH2 0x4147 000040fa: JUMP 000040fb: JUMPDEST 000040fc: POP 000040fd: SUB 000040fe: SWAP1 000040ff: JUMP 00004100: JUMPDEST 00004101: PUSH1 0x00 00004103: JUMPDEST 00004104: DUP4 00004105: DUP2 00004106: LT 00004107: ISZERO 00004108: PUSH2 0x411b 0000410b: JUMPI 0000410c: DUP2 0000410d: DUP2 0000410e: ADD 0000410f: MLOAD 00004110: DUP4 00004111: DUP3 00004112: ADD 00004113: MSTORE 00004114: PUSH1 0x20 00004116: ADD 00004117: PUSH2 0x4103 0000411a: JUMP 0000411b: JUMPDEST 0000411c: DUP4 0000411d: DUP2 0000411e: GT 0000411f: ISZERO 00004120: PUSH2 0x105b 00004123: JUMPI 00004124: POP 00004125: POP 00004126: PUSH1 0x00 00004128: SWAP2 00004129: ADD 0000412a: MSTORE 0000412b: JUMP 0000412c: JUMPDEST 0000412d: PUSH1 0x00 0000412f: PUSH1 0x00 00004131: NOT 00004132: DUP3 00004133: EQ 00004134: ISZERO 00004135: PUSH2 0x4140 00004138: JUMPI 00004139: PUSH2 0x4140 0000413c: PUSH2 0x4147 0000413f: JUMP 00004140: JUMPDEST 00004141: POP 00004142: PUSH1 0x01 00004144: ADD 00004145: SWAP1 00004146: JUMP 00004147: JUMPDEST 00004148: PUSH4 0x4e487b71 0000414d: PUSH1 0xe0 0000414f: SHL 00004150: PUSH1 0x00 00004152: MSTORE 00004153: PUSH1 0x11 00004155: PUSH1 0x04 00004157: MSTORE 00004158: PUSH1 0x24 0000415a: PUSH1 0x00 0000415c: REVERT 0000415d: JUMPDEST 0000415e: PUSH4 0x4e487b71 00004163: PUSH1 0xe0 00004165: SHL 00004166: PUSH1 0x00 00004168: MSTORE 00004169: PUSH1 0x41 0000416b: PUSH1 0x04 0000416d: MSTORE 0000416e: PUSH1 0x24 00004170: PUSH1 0x00 00004172: REVERT 00004173: JUMPDEST 00004174: PUSH1 0x01 00004176: PUSH1 0x01 00004178: PUSH1 0xa0 0000417a: SHL 0000417b: SUB 0000417c: DUP2 0000417d: AND 0000417e: DUP2 0000417f: EQ 00004180: PUSH2 0x0d31 00004183: JUMPI 00004184: PUSH1 0x00 00004186: DUP1 00004187: REVERT 00004188: JUMPDEST 00004189: DUP1 0000418a: ISZERO 0000418b: ISZERO 0000418c: DUP2 0000418d: EQ 0000418e: PUSH2 0x0d31 00004191: JUMPI 00004192: PUSH1 0x00 00004194: DUP1 00004195: REVERT 00004196: INVALID 00004197: PUSH1 0x80 00004199: PUSH1 0x40 0000419b: MSTORE 0000419c: CALLVALUE 0000419d: DUP1 0000419e: ISZERO 0000419f: PUSH2 0x0010 000041a2: JUMPI 000041a3: PUSH1 0x00 000041a5: DUP1 000041a6: REVERT 000041a7: JUMPDEST 000041a8: POP 000041a9: PUSH2 0x17d2 000041ac: DUP1 000041ad: PUSH2 0x0020 000041b0: PUSH1 0x00 000041b2: CODECOPY 000041b3: PUSH1 0x00 000041b5: RETURN 000041b6: INVALID 000041b7: PUSH1 0x80 000041b9: PUSH1 0x40 000041bb: MSTORE 000041bc: CALLVALUE 000041bd: DUP1 000041be: ISZERO 000041bf: PUSH2 0x0010 000041c2: JUMPI 000041c3: PUSH1 0x00 000041c5: DUP1 000041c6: REVERT 000041c7: JUMPDEST 000041c8: POP 000041c9: PUSH1 0x04 000041cb: CALLDATASIZE 000041cc: LT 000041cd: PUSH2 0x0142 000041d0: JUMPI 000041d1: PUSH1 0x00 000041d3: CALLDATALOAD 000041d4: PUSH1 0xe0 000041d6: SHR 000041d7: DUP1 000041d8: PUSH4 0x79cc6790 000041dd: GT 000041de: PUSH2 0x00b8 000041e1: JUMPI 000041e2: DUP1 000041e3: PUSH4 0x9a8a0592 000041e8: GT 000041e9: PUSH2 0x007c 000041ec: JUMPI 000041ed: DUP1 000041ee: PUSH4 0x9a8a0592 000041f3: EQ 000041f4: PUSH2 0x029f 000041f7: JUMPI 000041f8: DUP1 000041f9: PUSH4 0xa457c2d7 000041fe: EQ 000041ff: PUSH2 0x02a8 00004202: JUMPI 00004203: DUP1 00004204: PUSH4 0xa9059cbb 00004209: EQ 0000420a: PUSH2 0x02bb 0000420d: JUMPI 0000420e: DUP1 0000420f: PUSH4 0xbe88368d 00004214: EQ 00004215: PUSH2 0x02ce 00004218: JUMPI 00004219: DUP1 0000421a: PUSH4 0xdd62ed3e 0000421f: EQ 00004220: PUSH2 0x02e1 00004223: JUMPI 00004224: DUP1 00004225: PUSH4 0xf2fde38b 0000422a: EQ 0000422b: PUSH2 0x031a 0000422e: JUMPI 0000422f: PUSH2 0x0142 00004232: JUMP 00004233: JUMPDEST 00004234: DUP1 00004235: PUSH4 0x79cc6790 0000423a: EQ 0000423b: PUSH2 0x0225 0000423e: JUMPI 0000423f: DUP1 00004240: PUSH4 0x7a4f7d79 00004245: EQ 00004246: PUSH2 0x0238 00004249: JUMPI 0000424a: DUP1 0000424b: PUSH4 0x8d68fdc8 00004250: EQ 00004251: PUSH2 0x0263 00004254: JUMPI 00004255: DUP1 00004256: PUSH4 0x8da5cb5b 0000425b: EQ 0000425c: PUSH2 0x0286 0000425f: JUMPI 00004260: DUP1 00004261: PUSH4 0x95d89b41 00004266: EQ 00004267: PUSH2 0x0297 0000426a: JUMPI 0000426b: PUSH2 0x0142 0000426e: JUMP 0000426f: JUMPDEST 00004270: DUP1 00004271: PUSH4 0x313ce567 00004276: GT 00004277: PUSH2 0x010a 0000427a: JUMPI 0000427b: DUP1 0000427c: PUSH4 0x313ce567 00004281: EQ 00004282: PUSH2 0x01ba 00004285: JUMPI 00004286: DUP1 00004287: PUSH4 0x39509351 0000428c: EQ 0000428d: PUSH2 0x01cf 00004290: JUMPI 00004291: DUP1 00004292: PUSH4 0x42966c68 00004297: EQ 00004298: PUSH2 0x01e2 0000429b: JUMPI 0000429c: DUP1 0000429d: PUSH4 0x70a08231 000042a2: EQ 000042a3: PUSH2 0x01f7 000042a6: JUMPI 000042a7: DUP1 000042a8: PUSH4 0x715018a6 000042ad: EQ 000042ae: PUSH2 0x020a 000042b1: JUMPI 000042b2: DUP1 000042b3: PUSH4 0x78062d02 000042b8: EQ 000042b9: PUSH2 0x0212 000042bc: JUMPI 000042bd: PUSH2 0x0142 000042c0: JUMP 000042c1: JUMPDEST 000042c2: DUP1 000042c3: PUSH4 0x06fdde03 000042c8: EQ 000042c9: PUSH2 0x0147 000042cc: JUMPI 000042cd: DUP1 000042ce: PUSH4 0x095ea7b3 000042d3: EQ 000042d4: PUSH2 0x0165 000042d7: JUMPI 000042d8: DUP1 000042d9: PUSH4 0x0ac7f561 000042de: EQ 000042df: PUSH2 0x0188 000042e2: JUMPI 000042e3: DUP1 000042e4: PUSH4 0x18160ddd 000042e9: EQ 000042ea: PUSH2 0x019f 000042ed: JUMPI 000042ee: DUP1 000042ef: PUSH4 0x23b872dd 000042f4: EQ 000042f5: PUSH2 0x01a7 000042f8: JUMPI 000042f9: JUMPDEST 000042fa: PUSH1 0x00 000042fc: DUP1 000042fd: REVERT 000042fe: JUMPDEST 000042ff: PUSH2 0x014f 00004302: PUSH2 0x032d 00004305: JUMP 00004306: JUMPDEST 00004307: PUSH1 0x40 00004309: MLOAD 0000430a: PUSH2 0x015c 0000430d: SWAP2 0000430e: SWAP1 0000430f: PUSH2 0x163f 00004312: JUMP 00004313: JUMPDEST 00004314: PUSH1 0x40 00004316: MLOAD 00004317: DUP1 00004318: SWAP2 00004319: SUB 0000431a: SWAP1 0000431b: RETURN 0000431c: JUMPDEST 0000431d: PUSH2 0x0178 00004320: PUSH2 0x0173 00004323: CALLDATASIZE 00004324: PUSH1 0x04 00004326: PUSH2 0x1473 00004329: JUMP 0000432a: JUMPDEST 0000432b: PUSH2 0x03bf 0000432e: JUMP 0000432f: JUMPDEST 00004330: PUSH1 0x40 00004332: MLOAD 00004333: SWAP1 00004334: ISZERO 00004335: ISZERO 00004336: DUP2 00004337: MSTORE 00004338: PUSH1 0x20 0000433a: ADD 0000433b: PUSH2 0x015c 0000433e: JUMP 0000433f: JUMPDEST 00004340: PUSH2 0x0191 00004343: PUSH1 0xcc 00004345: SLOAD 00004346: DUP2 00004347: JUMP 00004348: JUMPDEST 00004349: PUSH1 0x40 0000434b: MLOAD 0000434c: SWAP1 0000434d: DUP2 0000434e: MSTORE 0000434f: PUSH1 0x20 00004351: ADD 00004352: PUSH2 0x015c 00004355: JUMP 00004356: JUMPDEST 00004357: PUSH1 0x35 00004359: SLOAD 0000435a: PUSH2 0x0191 0000435d: JUMP 0000435e: JUMPDEST 0000435f: PUSH2 0x0178 00004362: PUSH2 0x01b5 00004365: CALLDATASIZE 00004366: PUSH1 0x04 00004368: PUSH2 0x135e 0000436b: JUMP 0000436c: JUMPDEST 0000436d: PUSH2 0x03d5 00004370: JUMP 00004371: JUMPDEST 00004372: PUSH1 0xcd 00004374: SLOAD 00004375: PUSH1 0x40 00004377: MLOAD 00004378: PUSH1 0xff 0000437a: SWAP1 0000437b: SWAP2 0000437c: AND 0000437d: DUP2 0000437e: MSTORE 0000437f: PUSH1 0x20 00004381: ADD 00004382: PUSH2 0x015c 00004385: JUMP 00004386: JUMPDEST 00004387: PUSH2 0x0178 0000438a: PUSH2 0x01dd 0000438d: CALLDATASIZE 0000438e: PUSH1 0x04 00004390: PUSH2 0x1473 00004393: JUMP 00004394: JUMPDEST 00004395: PUSH2 0x0484 00004398: JUMP 00004399: JUMPDEST 0000439a: PUSH2 0x01f5 0000439d: PUSH2 0x01f0 000043a0: CALLDATASIZE 000043a1: PUSH1 0x04 000043a3: PUSH2 0x1531 000043a6: JUMP 000043a7: JUMPDEST 000043a8: PUSH2 0x04c0 000043ab: JUMP 000043ac: JUMPDEST 000043ad: STOP 000043ae: JUMPDEST 000043af: PUSH2 0x0191 000043b2: PUSH2 0x0205 000043b5: CALLDATASIZE 000043b6: PUSH1 0x04 000043b8: PUSH2 0x130b 000043bb: JUMP 000043bc: JUMPDEST 000043bd: PUSH2 0x04cd 000043c0: JUMP 000043c1: JUMPDEST 000043c2: PUSH2 0x01f5 000043c5: PUSH2 0x04ec 000043c8: JUMP 000043c9: JUMPDEST 000043ca: PUSH2 0x01f5 000043cd: PUSH2 0x0220 000043d0: CALLDATASIZE 000043d1: PUSH1 0x04 000043d3: PUSH2 0x1399 000043d6: JUMP 000043d7: JUMPDEST 000043d8: PUSH2 0x0522 000043db: JUMP 000043dc: JUMPDEST 000043dd: PUSH2 0x01f5 000043e0: PUSH2 0x0233 000043e3: CALLDATASIZE 000043e4: PUSH1 0x04 000043e6: PUSH2 0x1473 000043e9: JUMP 000043ea: JUMPDEST 000043eb: PUSH2 0x0762 000043ee: JUMP 000043ef: JUMPDEST 000043f0: PUSH1 0xcb 000043f2: SLOAD 000043f3: PUSH2 0x024b 000043f6: SWAP1 000043f7: PUSH1 0x01 000043f9: PUSH1 0x01 000043fb: PUSH1 0xa0 000043fd: SHL 000043fe: SUB 000043ff: AND 00004400: DUP2 00004401: JUMP 00004402: JUMPDEST 00004403: PUSH1 0x40 00004405: MLOAD 00004406: PUSH1 0x01 00004408: PUSH1 0x01 0000440a: PUSH1 0xa0 0000440c: SHL 0000440d: SUB 0000440e: SWAP1 0000440f: SWAP2 00004410: AND 00004411: DUP2 00004412: MSTORE 00004413: PUSH1 0x20 00004415: ADD 00004416: PUSH2 0x015c 00004419: JUMP 0000441a: JUMPDEST 0000441b: PUSH2 0x0178 0000441e: PUSH2 0x0271 00004421: CALLDATASIZE 00004422: PUSH1 0x04 00004424: PUSH2 0x1531 00004427: JUMP 00004428: JUMPDEST 00004429: PUSH1 0xca 0000442b: PUSH1 0x20 0000442d: MSTORE 0000442e: PUSH1 0x00 00004430: SWAP1 00004431: DUP2 00004432: MSTORE 00004433: PUSH1 0x40 00004435: SWAP1 00004436: KECCAK256 00004437: SLOAD 00004438: PUSH1 0xff 0000443a: AND 0000443b: DUP2 0000443c: JUMP 0000443d: JUMPDEST 0000443e: PUSH1 0x97 00004440: SLOAD 00004441: PUSH1 0x01 00004443: PUSH1 0x01 00004445: PUSH1 0xa0 00004447: SHL 00004448: SUB 00004449: AND 0000444a: PUSH2 0x024b 0000444d: JUMP 0000444e: JUMPDEST 0000444f: PUSH2 0x014f 00004452: PUSH2 0x07e8 00004455: JUMP 00004456: JUMPDEST 00004457: PUSH2 0x0191 0000445a: PUSH1 0xc9 0000445c: SLOAD 0000445d: DUP2 0000445e: JUMP 0000445f: JUMPDEST 00004460: PUSH2 0x0178 00004463: PUSH2 0x02b6 00004466: CALLDATASIZE 00004467: PUSH1 0x04 00004469: PUSH2 0x1473 0000446c: JUMP 0000446d: JUMPDEST 0000446e: PUSH2 0x07f7 00004471: JUMP 00004472: JUMPDEST 00004473: PUSH2 0x0178 00004476: PUSH2 0x02c9 00004479: CALLDATASIZE 0000447a: PUSH1 0x04 0000447c: PUSH2 0x1473 0000447f: JUMP 00004480: JUMPDEST 00004481: PUSH2 0x0890 00004484: JUMP 00004485: JUMPDEST 00004486: PUSH2 0x01f5 00004489: PUSH2 0x02dc 0000448c: CALLDATASIZE 0000448d: PUSH1 0x04 0000448f: PUSH2 0x149c 00004492: JUMP 00004493: JUMPDEST 00004494: PUSH2 0x089d 00004497: JUMP 00004498: JUMPDEST 00004499: PUSH2 0x0191 0000449c: PUSH2 0x02ef 0000449f: CALLDATASIZE 000044a0: PUSH1 0x04 000044a2: PUSH2 0x132c 000044a5: JUMP 000044a6: JUMPDEST 000044a7: PUSH1 0x01 000044a9: PUSH1 0x01 000044ab: PUSH1 0xa0 000044ad: SHL 000044ae: SUB 000044af: SWAP2 000044b0: DUP3 000044b1: AND 000044b2: PUSH1 0x00 000044b4: SWAP1 000044b5: DUP2 000044b6: MSTORE 000044b7: PUSH1 0x34 000044b9: PUSH1 0x20 000044bb: SWAP1 000044bc: DUP2 000044bd: MSTORE 000044be: PUSH1 0x40 000044c0: DUP1 000044c1: DUP4 000044c2: KECCAK256 000044c3: SWAP4 000044c4: SWAP1 000044c5: SWAP5 000044c6: AND 000044c7: DUP3 000044c8: MSTORE 000044c9: SWAP2 000044ca: SWAP1 000044cb: SWAP2 000044cc: MSTORE 000044cd: KECCAK256 000044ce: SLOAD 000044cf: SWAP1 000044d0: JUMP 000044d1: JUMPDEST 000044d2: PUSH2 0x01f5 000044d5: PUSH2 0x0328 000044d8: CALLDATASIZE 000044d9: PUSH1 0x04 000044db: PUSH2 0x130b 000044de: JUMP 000044df: JUMPDEST 000044e0: PUSH2 0x0960 000044e3: JUMP 000044e4: JUMPDEST 000044e5: PUSH1 0x60 000044e7: PUSH1 0x36 000044e9: DUP1 000044ea: SLOAD 000044eb: PUSH2 0x033c 000044ee: SWAP1 000044ef: PUSH2 0x1735 000044f2: JUMP 000044f3: JUMPDEST 000044f4: DUP1 000044f5: PUSH1 0x1f 000044f7: ADD 000044f8: PUSH1 0x20 000044fa: DUP1 000044fb: SWAP2 000044fc: DIV 000044fd: MUL 000044fe: PUSH1 0x20 00004500: ADD 00004501: PUSH1 0x40 00004503: MLOAD 00004504: SWAP1 00004505: DUP2 00004506: ADD 00004507: PUSH1 0x40 00004509: MSTORE 0000450a: DUP1 0000450b: SWAP3 0000450c: SWAP2 0000450d: SWAP1 0000450e: DUP2 0000450f: DUP2 00004510: MSTORE 00004511: PUSH1 0x20 00004513: ADD 00004514: DUP3 00004515: DUP1 00004516: SLOAD 00004517: PUSH2 0x0368 0000451a: SWAP1 0000451b: PUSH2 0x1735 0000451e: JUMP 0000451f: JUMPDEST 00004520: DUP1 00004521: ISZERO 00004522: PUSH2 0x03b5 00004525: JUMPI 00004526: DUP1 00004527: PUSH1 0x1f 00004529: LT 0000452a: PUSH2 0x038a 0000452d: JUMPI 0000452e: PUSH2 0x0100 00004531: DUP1 00004532: DUP4 00004533: SLOAD 00004534: DIV 00004535: MUL 00004536: DUP4 00004537: MSTORE 00004538: SWAP2 00004539: PUSH1 0x20 0000453b: ADD 0000453c: SWAP2 0000453d: PUSH2 0x03b5 00004540: JUMP 00004541: JUMPDEST 00004542: DUP3 00004543: ADD 00004544: SWAP2 00004545: SWAP1 00004546: PUSH1 0x00 00004548: MSTORE 00004549: PUSH1 0x20 0000454b: PUSH1 0x00 0000454d: KECCAK256 0000454e: SWAP1 0000454f: JUMPDEST 00004550: DUP2 00004551: SLOAD 00004552: DUP2 00004553: MSTORE 00004554: SWAP1 00004555: PUSH1 0x01 00004557: ADD 00004558: SWAP1 00004559: PUSH1 0x20 0000455b: ADD 0000455c: DUP1 0000455d: DUP4 0000455e: GT 0000455f: PUSH2 0x0398 00004562: JUMPI 00004563: DUP3 00004564: SWAP1 00004565: SUB 00004566: PUSH1 0x1f 00004568: AND 00004569: DUP3 0000456a: ADD 0000456b: SWAP2 0000456c: JUMPDEST 0000456d: POP 0000456e: POP 0000456f: POP 00004570: POP 00004571: POP 00004572: SWAP1 00004573: POP 00004574: SWAP1 00004575: JUMP 00004576: JUMPDEST 00004577: PUSH1 0x00 00004579: PUSH2 0x03cc 0000457c: CALLER 0000457d: DUP5 0000457e: DUP5 0000457f: PUSH2 0x09f8 00004582: JUMP 00004583: JUMPDEST 00004584: POP 00004585: PUSH1 0x01 00004587: SWAP3 00004588: SWAP2 00004589: POP 0000458a: POP 0000458b: JUMP 0000458c: JUMPDEST 0000458d: PUSH1 0x00 0000458f: PUSH2 0x03e2 00004592: DUP5 00004593: DUP5 00004594: DUP5 00004595: PUSH2 0x0b1c 00004598: JUMP 00004599: JUMPDEST 0000459a: PUSH1 0x01 0000459c: PUSH1 0x01 0000459e: PUSH1 0xa0 000045a0: SHL 000045a1: SUB 000045a2: DUP5 000045a3: AND 000045a4: PUSH1 0x00 000045a6: SWAP1 000045a7: DUP2 000045a8: MSTORE 000045a9: PUSH1 0x34 000045ab: PUSH1 0x20 000045ad: SWAP1 000045ae: DUP2 000045af: MSTORE 000045b0: PUSH1 0x40 000045b2: DUP1 000045b3: DUP4 000045b4: KECCAK256 000045b5: CALLER 000045b6: DUP5 000045b7: MSTORE 000045b8: SWAP1 000045b9: SWAP2 000045ba: MSTORE 000045bb: SWAP1 000045bc: KECCAK256 000045bd: SLOAD 000045be: DUP3 000045bf: DUP2 000045c0: LT 000045c1: ISZERO 000045c2: PUSH2 0x046c 000045c5: JUMPI 000045c6: PUSH1 0x40 000045c8: MLOAD 000045c9: PUSH3 0x461bcd 000045cd: PUSH1 0xe5 000045cf: SHL 000045d0: DUP2 000045d1: MSTORE 000045d2: PUSH1 0x20 000045d4: PUSH1 0x04 000045d6: DUP3 000045d7: ADD 000045d8: MSTORE 000045d9: PUSH1 0x28 000045db: PUSH1 0x24 000045dd: DUP3 000045de: ADD 000045df: MSTORE 000045e0: PUSH32 0x45524332303a207472616e7366657220616d6f756e7420657863656564732061 00004601: PUSH1 0x44 00004603: DUP3 00004604: ADD 00004605: MSTORE 00004606: PUSH8 0x6c6c6f77616e6365 0000460f: PUSH1 0xc0 00004611: SHL 00004612: PUSH1 0x64 00004614: DUP3 00004615: ADD 00004616: MSTORE 00004617: PUSH1 0x84 00004619: ADD 0000461a: JUMPDEST 0000461b: PUSH1 0x40 0000461d: MLOAD 0000461e: DUP1 0000461f: SWAP2 00004620: SUB 00004621: SWAP1 00004622: REVERT 00004623: JUMPDEST 00004624: PUSH2 0x0479 00004627: DUP6 00004628: CALLER 00004629: DUP6 0000462a: DUP5 0000462b: SUB 0000462c: PUSH2 0x09f8 0000462f: JUMP 00004630: JUMPDEST 00004631: POP 00004632: PUSH1 0x01 00004634: SWAP5 00004635: SWAP4 00004636: POP 00004637: POP 00004638: POP 00004639: POP 0000463a: JUMP 0000463b: JUMPDEST 0000463c: CALLER 0000463d: PUSH1 0x00 0000463f: DUP2 00004640: DUP2 00004641: MSTORE 00004642: PUSH1 0x34 00004644: PUSH1 0x20 00004646: SWAP1 00004647: DUP2 00004648: MSTORE 00004649: PUSH1 0x40 0000464b: DUP1 0000464c: DUP4 0000464d: KECCAK256 0000464e: PUSH1 0x01 00004650: PUSH1 0x01 00004652: PUSH1 0xa0 00004654: SHL 00004655: SUB 00004656: DUP8 00004657: AND 00004658: DUP5 00004659: MSTORE 0000465a: SWAP1 0000465b: SWAP2 0000465c: MSTORE 0000465d: DUP2 0000465e: KECCAK256 0000465f: SLOAD 00004660: SWAP1 00004661: SWAP2 00004662: PUSH2 0x03cc 00004665: SWAP2 00004666: DUP6 00004667: SWAP1 00004668: PUSH2 0x04bb 0000466b: SWAP1 0000466c: DUP7 0000466d: SWAP1 0000466e: PUSH2 0x1706 00004671: JUMP 00004672: JUMPDEST 00004673: PUSH2 0x09f8 00004676: JUMP 00004677: JUMPDEST 00004678: PUSH2 0x04ca 0000467b: CALLER 0000467c: DUP3 0000467d: PUSH2 0x0ceb 00004680: JUMP 00004681: JUMPDEST 00004682: POP 00004683: JUMP 00004684: JUMPDEST 00004685: PUSH1 0x01 00004687: PUSH1 0x01 00004689: PUSH1 0xa0 0000468b: SHL 0000468c: SUB 0000468d: DUP2 0000468e: AND 0000468f: PUSH1 0x00 00004691: SWAP1 00004692: DUP2 00004693: MSTORE 00004694: PUSH1 0x33 00004696: PUSH1 0x20 00004698: MSTORE 00004699: PUSH1 0x40 0000469b: SWAP1 0000469c: KECCAK256 0000469d: SLOAD 0000469e: JUMPDEST 0000469f: SWAP2 000046a0: SWAP1 000046a1: POP 000046a2: JUMP 000046a3: JUMPDEST 000046a4: PUSH1 0x97 000046a6: SLOAD 000046a7: PUSH1 0x01 000046a9: PUSH1 0x01 000046ab: PUSH1 0xa0 000046ad: SHL 000046ae: SUB 000046af: AND 000046b0: CALLER 000046b1: EQ 000046b2: PUSH2 0x0516 000046b5: JUMPI 000046b6: PUSH1 0x40 000046b8: MLOAD 000046b9: PUSH3 0x461bcd 000046bd: PUSH1 0xe5 000046bf: SHL 000046c0: DUP2 000046c1: MSTORE 000046c2: PUSH1 0x04 000046c4: ADD 000046c5: PUSH2 0x0463 000046c8: SWAP1 000046c9: PUSH2 0x16a0 000046cc: JUMP 000046cd: JUMPDEST 000046ce: PUSH2 0x0520 000046d1: PUSH1 0x00 000046d3: PUSH2 0x0e39 000046d6: JUMP 000046d7: JUMPDEST 000046d8: JUMP 000046d9: JUMPDEST 000046da: PUSH1 0x97 000046dc: SLOAD 000046dd: PUSH1 0x01 000046df: PUSH1 0x01 000046e1: PUSH1 0xa0 000046e3: SHL 000046e4: SUB 000046e5: AND 000046e6: CALLER 000046e7: EQ 000046e8: PUSH2 0x054c 000046eb: JUMPI 000046ec: PUSH1 0x40 000046ee: MLOAD 000046ef: PUSH3 0x461bcd 000046f3: PUSH1 0xe5 000046f5: SHL 000046f6: DUP2 000046f7: MSTORE 000046f8: PUSH1 0x04 000046fa: ADD 000046fb: PUSH2 0x0463 000046fe: SWAP1 000046ff: PUSH2 0x16a0 00004702: JUMP 00004703: JUMPDEST 00004704: DUP2 00004705: MLOAD 00004706: PUSH1 0x04 00004708: EQ 00004709: PUSH2 0x0596 0000470c: JUMPI 0000470d: PUSH1 0x40 0000470f: MLOAD 00004710: PUSH3 0x461bcd 00004714: PUSH1 0xe5 00004716: SHL 00004717: DUP2 00004718: MSTORE 00004719: PUSH1 0x20 0000471b: PUSH1 0x04 0000471d: DUP3 0000471e: ADD 0000471f: MSTORE 00004720: PUSH1 0x16 00004722: PUSH1 0x24 00004724: DUP3 00004725: ADD 00004726: MSTORE 00004727: PUSH22 0x042bec6d0c2d2dc92c8e692dcc8caf05cd8cadccee8d 0000473e: PUSH1 0x53 00004740: SHL 00004741: PUSH1 0x44 00004743: DUP3 00004744: ADD 00004745: MSTORE 00004746: PUSH1 0x64 00004748: ADD 00004749: PUSH2 0x0463 0000474c: JUMP 0000474d: JUMPDEST 0000474e: PUSH1 0xcb 00004750: SLOAD 00004751: PUSH1 0x01 00004753: PUSH1 0x01 00004755: PUSH1 0xa0 00004757: SHL 00004758: SUB 00004759: DUP7 0000475a: DUP2 0000475b: AND 0000475c: SWAP2 0000475d: AND 0000475e: EQ 0000475f: PUSH2 0x05eb 00004762: JUMPI 00004763: PUSH1 0x40 00004765: MLOAD 00004766: PUSH3 0x461bcd 0000476a: PUSH1 0xe5 0000476c: SHL 0000476d: DUP2 0000476e: MSTORE 0000476f: PUSH1 0x20 00004771: PUSH1 0x04 00004773: DUP3 00004774: ADD 00004775: MSTORE 00004776: PUSH1 0x15 00004778: PUSH1 0x24 0000477a: DUP3 0000477b: ADD 0000477c: MSTORE 0000477d: PUSH21 0x216f726967696e616c546f6b656e41646472657373 00004793: PUSH1 0x58 00004795: SHL 00004796: PUSH1 0x44 00004798: DUP3 00004799: ADD 0000479a: MSTORE 0000479b: PUSH1 0x64 0000479d: ADD 0000479e: PUSH2 0x0463 000047a1: JUMP 000047a2: JUMPDEST 000047a3: PUSH1 0xc9 000047a5: SLOAD 000047a6: DUP3 000047a7: PUSH1 0x02 000047a9: DUP2 000047aa: MLOAD 000047ab: DUP2 000047ac: LT 000047ad: PUSH2 0x060f 000047b0: JUMPI 000047b1: PUSH4 0x4e487b71 000047b6: PUSH1 0xe0 000047b8: SHL 000047b9: PUSH1 0x00 000047bb: MSTORE 000047bc: PUSH1 0x32 000047be: PUSH1 0x04 000047c0: MSTORE 000047c1: PUSH1 0x24 000047c3: PUSH1 0x00 000047c5: REVERT 000047c6: JUMPDEST 000047c7: PUSH1 0x20 000047c9: MUL 000047ca: PUSH1 0x20 000047cc: ADD 000047cd: ADD 000047ce: MLOAD 000047cf: EQ 000047d0: PUSH2 0x0657 000047d3: JUMPI 000047d4: PUSH1 0x40 000047d6: MLOAD 000047d7: PUSH3 0x461bcd 000047db: PUSH1 0xe5 000047dd: SHL 000047de: DUP2 000047df: MSTORE 000047e0: PUSH1 0x20 000047e2: PUSH1 0x04 000047e4: DUP3 000047e5: ADD 000047e6: MSTORE 000047e7: PUSH1 0x10 000047e9: PUSH1 0x24 000047eb: DUP3 000047ec: ADD 000047ed: MSTORE 000047ee: PUSH16 0x085a5b9d985b1a590818da185a5b9259 000047ff: PUSH1 0x82 00004801: SHL 00004802: PUSH1 0x44 00004804: DUP3 00004805: ADD 00004806: MSTORE 00004807: PUSH1 0x64 00004809: ADD 0000480a: PUSH2 0x0463 0000480d: JUMP 0000480e: JUMPDEST 0000480f: PUSH1 0x01 00004811: PUSH1 0x01 00004813: PUSH1 0xa0 00004815: SHL 00004816: SUB 00004817: DUP5 00004818: AND 00004819: PUSH2 0x069b 0000481c: JUMPI 0000481d: PUSH1 0x40 0000481f: MLOAD 00004820: PUSH3 0x461bcd 00004824: PUSH1 0xe5 00004826: SHL 00004827: DUP2 00004828: MSTORE 00004829: PUSH1 0x20 0000482b: PUSH1 0x04 0000482d: DUP3 0000482e: ADD 0000482f: MSTORE 00004830: PUSH1 0x0b 00004832: PUSH1 0x24 00004834: DUP3 00004835: ADD 00004836: MSTORE 00004837: PUSH11 0x21696e76616c696420746f 00004843: PUSH1 0xa8 00004845: SHL 00004846: PUSH1 0x44 00004848: DUP3 00004849: ADD 0000484a: MSTORE 0000484b: PUSH1 0x64 0000484d: ADD 0000484e: PUSH2 0x0463 00004851: JUMP 00004852: JUMPDEST 00004853: PUSH1 0x00 00004855: DUP6 00004856: DUP6 00004857: DUP6 00004858: DUP6 00004859: DUP6 0000485a: PUSH2 0x06aa 0000485d: PUSH2 0x032d 00004860: JUMP 00004861: JUMPDEST 00004862: PUSH2 0x06b2 00004865: PUSH2 0x07e8 00004868: JUMP 00004869: JUMPDEST 0000486a: PUSH1 0xcd 0000486c: SLOAD 0000486d: PUSH1 0xff 0000486f: AND 00004870: PUSH1 0x40 00004872: MLOAD 00004873: PUSH1 0x20 00004875: ADD 00004876: PUSH2 0x06cf 00004879: SWAP9 0000487a: SWAP8 0000487b: SWAP7 0000487c: SWAP6 0000487d: SWAP5 0000487e: SWAP4 0000487f: SWAP3 00004880: SWAP2 00004881: SWAP1 00004882: PUSH2 0x1594 00004885: JUMP 00004886: JUMPDEST 00004887: PUSH1 0x40 00004889: DUP1 0000488a: MLOAD 0000488b: PUSH1 0x1f 0000488d: NOT 0000488e: DUP2 0000488f: DUP5 00004890: SUB 00004891: ADD 00004892: DUP2 00004893: MSTORE 00004894: SWAP2 00004895: DUP2 00004896: MSTORE 00004897: DUP2 00004898: MLOAD 00004899: PUSH1 0x20 0000489b: SWAP3 0000489c: DUP4 0000489d: ADD 0000489e: KECCAK256 0000489f: PUSH1 0x00 000048a1: DUP2 000048a2: DUP2 000048a3: MSTORE 000048a4: PUSH1 0xca 000048a6: SWAP1 000048a7: SWAP4 000048a8: MSTORE 000048a9: SWAP2 000048aa: KECCAK256 000048ab: SLOAD 000048ac: SWAP1 000048ad: SWAP2 000048ae: POP 000048af: PUSH1 0xff 000048b1: AND 000048b2: ISZERO 000048b3: PUSH2 0x0737 000048b6: JUMPI 000048b7: PUSH1 0x40 000048b9: MLOAD 000048ba: PUSH3 0x461bcd 000048be: PUSH1 0xe5 000048c0: SHL 000048c1: DUP2 000048c2: MSTORE 000048c3: PUSH1 0x20 000048c5: PUSH1 0x04 000048c7: DUP3 000048c8: ADD 000048c9: MSTORE 000048ca: PUSH1 0x0d 000048cc: PUSH1 0x24 000048ce: DUP3 000048cf: ADD 000048d0: MSTORE 000048d1: PUSH13 0x616c726561647920636c61696d 000048df: PUSH1 0x98 000048e1: SHL 000048e2: PUSH1 0x44 000048e4: DUP3 000048e5: ADD 000048e6: MSTORE 000048e7: PUSH1 0x64 000048e9: ADD 000048ea: PUSH2 0x0463 000048ed: JUMP 000048ee: JUMPDEST 000048ef: PUSH1 0x00 000048f1: DUP2 000048f2: DUP2 000048f3: MSTORE 000048f4: PUSH1 0xca 000048f6: PUSH1 0x20 000048f8: MSTORE 000048f9: PUSH1 0x40 000048fb: SWAP1 000048fc: KECCAK256 000048fd: DUP1 000048fe: SLOAD 000048ff: PUSH1 0xff 00004901: NOT 00004902: AND 00004903: PUSH1 0x01 00004905: OR 00004906: SWAP1 00004907: SSTORE 00004908: PUSH2 0x075a 0000490b: DUP6 0000490c: DUP6 0000490d: PUSH2 0x0e8b 00004910: JUMP 00004911: JUMPDEST 00004912: POP 00004913: POP 00004914: POP 00004915: POP 00004916: POP 00004917: POP 00004918: JUMP 00004919: JUMPDEST 0000491a: PUSH1 0x00 0000491c: PUSH2 0x076e 0000491f: DUP4 00004920: CALLER 00004921: PUSH2 0x02ef 00004924: JUMP 00004925: JUMPDEST 00004926: SWAP1 00004927: POP 00004928: DUP2 00004929: DUP2 0000492a: LT 0000492b: ISZERO 0000492c: PUSH2 0x07cc 0000492f: JUMPI 00004930: PUSH1 0x40 00004932: MLOAD 00004933: PUSH3 0x461bcd 00004937: PUSH1 0xe5 00004939: SHL 0000493a: DUP2 0000493b: MSTORE 0000493c: PUSH1 0x20 0000493e: PUSH1 0x04 00004940: DUP3 00004941: ADD 00004942: MSTORE 00004943: PUSH1 0x24 00004945: DUP1 00004946: DUP3 00004947: ADD 00004948: MSTORE 00004949: PUSH32 0x45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77 0000496a: PUSH1 0x44 0000496c: DUP3 0000496d: ADD 0000496e: MSTORE 0000496f: PUSH4 0x616e6365 00004974: PUSH1 0xe0 00004976: SHL 00004977: PUSH1 0x64 00004979: DUP3 0000497a: ADD 0000497b: MSTORE 0000497c: PUSH1 0x84 0000497e: ADD 0000497f: PUSH2 0x0463 00004982: JUMP 00004983: JUMPDEST 00004984: PUSH2 0x07d9 00004987: DUP4 00004988: CALLER 00004989: DUP5 0000498a: DUP5 0000498b: SUB 0000498c: PUSH2 0x09f8 0000498f: JUMP 00004990: JUMPDEST 00004991: PUSH2 0x07e3 00004994: DUP4 00004995: DUP4 00004996: PUSH2 0x0ceb 00004999: JUMP 0000499a: JUMPDEST 0000499b: POP 0000499c: POP 0000499d: POP 0000499e: JUMP 0000499f: JUMPDEST 000049a0: PUSH1 0x60 000049a2: PUSH1 0x37 000049a4: DUP1 000049a5: SLOAD 000049a6: PUSH2 0x033c 000049a9: SWAP1 000049aa: PUSH2 0x1735 000049ad: JUMP 000049ae: JUMPDEST 000049af: CALLER 000049b0: PUSH1 0x00 000049b2: SWAP1 000049b3: DUP2 000049b4: MSTORE 000049b5: PUSH1 0x34 000049b7: PUSH1 0x20 000049b9: SWAP1 000049ba: DUP2 000049bb: MSTORE 000049bc: PUSH1 0x40 000049be: DUP1 000049bf: DUP4 000049c0: KECCAK256 000049c1: PUSH1 0x01 000049c3: PUSH1 0x01 000049c5: PUSH1 0xa0 000049c7: SHL 000049c8: SUB 000049c9: DUP7 000049ca: AND 000049cb: DUP5 000049cc: MSTORE 000049cd: SWAP1 000049ce: SWAP2 000049cf: MSTORE 000049d0: DUP2 000049d1: KECCAK256 000049d2: SLOAD 000049d3: DUP3 000049d4: DUP2 000049d5: LT 000049d6: ISZERO 000049d7: PUSH2 0x0879 000049da: JUMPI 000049db: PUSH1 0x40 000049dd: MLOAD 000049de: PUSH3 0x461bcd 000049e2: PUSH1 0xe5 000049e4: SHL 000049e5: DUP2 000049e6: MSTORE 000049e7: PUSH1 0x20 000049e9: PUSH1 0x04 000049eb: DUP3 000049ec: ADD 000049ed: MSTORE 000049ee: PUSH1 0x25 000049f0: PUSH1 0x24 000049f2: DUP3 000049f3: ADD 000049f4: MSTORE 000049f5: PUSH32 0x45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77 00004a16: PUSH1 0x44 00004a18: DUP3 00004a19: ADD 00004a1a: MSTORE 00004a1b: PUSH5 0x207a65726f 00004a21: PUSH1 0xd8 00004a23: SHL 00004a24: PUSH1 0x64 00004a26: DUP3 00004a27: ADD 00004a28: MSTORE 00004a29: PUSH1 0x84 00004a2b: ADD 00004a2c: PUSH2 0x0463 00004a2f: JUMP 00004a30: JUMPDEST 00004a31: PUSH2 0x0886 00004a34: CALLER 00004a35: DUP6 00004a36: DUP6 00004a37: DUP5 00004a38: SUB 00004a39: PUSH2 0x09f8 00004a3c: JUMP 00004a3d: JUMPDEST 00004a3e: POP 00004a3f: PUSH1 0x01 00004a41: SWAP4 00004a42: SWAP3 00004a43: POP 00004a44: POP 00004a45: POP 00004a46: JUMP 00004a47: JUMPDEST 00004a48: PUSH1 0x00 00004a4a: PUSH2 0x03cc 00004a4d: CALLER 00004a4e: DUP5 00004a4f: DUP5 00004a50: PUSH2 0x0b1c 00004a53: JUMP 00004a54: JUMPDEST 00004a55: PUSH1 0x00 00004a57: SLOAD 00004a58: PUSH2 0x0100 00004a5b: SWAP1 00004a5c: DIV 00004a5d: PUSH1 0xff 00004a5f: AND 00004a60: DUP1 00004a61: PUSH2 0x08b6 00004a64: JUMPI 00004a65: POP 00004a66: PUSH1 0x00 00004a68: SLOAD 00004a69: PUSH1 0xff 00004a6b: AND 00004a6c: ISZERO 00004a6d: JUMPDEST 00004a6e: PUSH2 0x08d2 00004a71: JUMPI 00004a72: PUSH1 0x40 00004a74: MLOAD 00004a75: PUSH3 0x461bcd 00004a79: PUSH1 0xe5 00004a7b: SHL 00004a7c: DUP2 00004a7d: MSTORE 00004a7e: PUSH1 0x04 00004a80: ADD 00004a81: PUSH2 0x0463 00004a84: SWAP1 00004a85: PUSH2 0x1652 00004a88: JUMP 00004a89: JUMPDEST 00004a8a: PUSH1 0x00 00004a8c: SLOAD 00004a8d: PUSH2 0x0100 00004a90: SWAP1 00004a91: DIV 00004a92: PUSH1 0xff 00004a94: AND 00004a95: ISZERO 00004a96: DUP1 00004a97: ISZERO 00004a98: PUSH2 0x08fd 00004a9b: JUMPI 00004a9c: PUSH1 0x00 00004a9e: DUP1 00004a9f: SLOAD 00004aa0: PUSH1 0xff 00004aa2: NOT 00004aa3: PUSH2 0xff00 00004aa6: NOT 00004aa7: SWAP1 00004aa8: SWAP2 00004aa9: AND 00004aaa: PUSH2 0x0100 00004aad: OR 00004aae: AND 00004aaf: PUSH1 0x01 00004ab1: OR 00004ab2: SWAP1 00004ab3: SSTORE 00004ab4: JUMPDEST 00004ab5: PUSH2 0x0905 00004ab8: PUSH2 0x0f6a 00004abb: JUMP 00004abc: JUMPDEST 00004abd: PUSH2 0x090e 00004ac0: CHAINID 00004ac1: PUSH1 0xc9 00004ac3: SSTORE 00004ac4: JUMP 00004ac5: JUMPDEST 00004ac6: PUSH2 0x0918 00004ac9: DUP5 00004aca: DUP5 00004acb: PUSH2 0x0fee 00004ace: JUMP 00004acf: JUMPDEST 00004ad0: PUSH1 0xcd 00004ad2: DUP1 00004ad3: SLOAD 00004ad4: PUSH1 0xff 00004ad6: NOT 00004ad7: AND 00004ad8: PUSH1 0xff 00004ada: DUP5 00004adb: AND 00004adc: OR 00004add: SWAP1 00004ade: SSTORE 00004adf: PUSH1 0xcb 00004ae1: DUP1 00004ae2: SLOAD 00004ae3: PUSH1 0x01 00004ae5: PUSH1 0x01 00004ae7: PUSH1 0xa0 00004ae9: SHL 00004aea: SUB 00004aeb: NOT 00004aec: AND 00004aed: PUSH1 0x01 00004aef: PUSH1 0x01 00004af1: PUSH1 0xa0 00004af3: SHL 00004af4: SUB 00004af5: DUP9 00004af6: AND 00004af7: OR 00004af8: SWAP1 00004af9: SSTORE 00004afa: PUSH1 0xcc 00004afc: DUP6 00004afd: SWAP1 00004afe: SSTORE 00004aff: DUP1 00004b00: ISZERO 00004b01: PUSH2 0x075a 00004b04: JUMPI 00004b05: PUSH1 0x00 00004b07: DUP1 00004b08: SLOAD 00004b09: PUSH2 0xff00 00004b0c: NOT 00004b0d: AND 00004b0e: SWAP1 00004b0f: SSTORE 00004b10: POP 00004b11: POP 00004b12: POP 00004b13: POP 00004b14: POP 00004b15: POP 00004b16: JUMP 00004b17: JUMPDEST 00004b18: PUSH1 0x97 00004b1a: SLOAD 00004b1b: PUSH1 0x01 00004b1d: PUSH1 0x01 00004b1f: PUSH1 0xa0 00004b21: SHL 00004b22: SUB 00004b23: AND 00004b24: CALLER 00004b25: EQ 00004b26: PUSH2 0x098a 00004b29: JUMPI 00004b2a: PUSH1 0x40 00004b2c: MLOAD 00004b2d: PUSH3 0x461bcd 00004b31: PUSH1 0xe5 00004b33: SHL 00004b34: DUP2 00004b35: MSTORE 00004b36: PUSH1 0x04 00004b38: ADD 00004b39: PUSH2 0x0463 00004b3c: SWAP1 00004b3d: PUSH2 0x16a0 00004b40: JUMP 00004b41: JUMPDEST 00004b42: PUSH1 0x01 00004b44: PUSH1 0x01 00004b46: PUSH1 0xa0 00004b48: SHL 00004b49: SUB 00004b4a: DUP2 00004b4b: AND 00004b4c: PUSH2 0x09ef 00004b4f: JUMPI 00004b50: PUSH1 0x40 00004b52: MLOAD 00004b53: PUSH3 0x461bcd 00004b57: PUSH1 0xe5 00004b59: SHL 00004b5a: DUP2 00004b5b: MSTORE 00004b5c: PUSH1 0x20 00004b5e: PUSH1 0x04 00004b60: DUP3 00004b61: ADD 00004b62: MSTORE 00004b63: PUSH1 0x26 00004b65: PUSH1 0x24 00004b67: DUP3 00004b68: ADD 00004b69: MSTORE 00004b6a: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 00004b8b: PUSH1 0x44 00004b8d: DUP3 00004b8e: ADD 00004b8f: MSTORE 00004b90: PUSH6 0x646472657373 00004b97: PUSH1 0xd0 00004b99: SHL 00004b9a: PUSH1 0x64 00004b9c: DUP3 00004b9d: ADD 00004b9e: MSTORE 00004b9f: PUSH1 0x84 00004ba1: ADD 00004ba2: PUSH2 0x0463 00004ba5: JUMP 00004ba6: JUMPDEST 00004ba7: PUSH2 0x04ca 00004baa: DUP2 00004bab: PUSH2 0x0e39 00004bae: JUMP 00004baf: JUMPDEST 00004bb0: PUSH1 0x01 00004bb2: PUSH1 0x01 00004bb4: PUSH1 0xa0 00004bb6: SHL 00004bb7: SUB 00004bb8: DUP4 00004bb9: AND 00004bba: PUSH2 0x0a5a 00004bbd: JUMPI 00004bbe: PUSH1 0x40 00004bc0: MLOAD 00004bc1: PUSH3 0x461bcd 00004bc5: PUSH1 0xe5 00004bc7: SHL 00004bc8: DUP2 00004bc9: MSTORE 00004bca: PUSH1 0x20 00004bcc: PUSH1 0x04 00004bce: DUP3 00004bcf: ADD 00004bd0: MSTORE 00004bd1: PUSH1 0x24 00004bd3: DUP1 00004bd4: DUP3 00004bd5: ADD 00004bd6: MSTORE 00004bd7: PUSH32 0x45524332303a20617070726f76652066726f6d20746865207a65726f20616464 00004bf8: PUSH1 0x44 00004bfa: DUP3 00004bfb: ADD 00004bfc: MSTORE 00004bfd: PUSH4 0x72657373 00004c02: PUSH1 0xe0 00004c04: SHL 00004c05: PUSH1 0x64 00004c07: DUP3 00004c08: ADD 00004c09: MSTORE 00004c0a: PUSH1 0x84 00004c0c: ADD 00004c0d: PUSH2 0x0463 00004c10: JUMP 00004c11: JUMPDEST 00004c12: PUSH1 0x01 00004c14: PUSH1 0x01 00004c16: PUSH1 0xa0 00004c18: SHL 00004c19: SUB 00004c1a: DUP3 00004c1b: AND 00004c1c: PUSH2 0x0abb 00004c1f: JUMPI 00004c20: PUSH1 0x40 00004c22: MLOAD 00004c23: PUSH3 0x461bcd 00004c27: PUSH1 0xe5 00004c29: SHL 00004c2a: DUP2 00004c2b: MSTORE 00004c2c: PUSH1 0x20 00004c2e: PUSH1 0x04 00004c30: DUP3 00004c31: ADD 00004c32: MSTORE 00004c33: PUSH1 0x22 00004c35: PUSH1 0x24 00004c37: DUP3 00004c38: ADD 00004c39: MSTORE 00004c3a: PUSH32 0x45524332303a20617070726f766520746f20746865207a65726f206164647265 00004c5b: PUSH1 0x44 00004c5d: DUP3 00004c5e: ADD 00004c5f: MSTORE 00004c60: PUSH2 0x7373 00004c63: PUSH1 0xf0 00004c65: SHL 00004c66: PUSH1 0x64 00004c68: DUP3 00004c69: ADD 00004c6a: MSTORE 00004c6b: PUSH1 0x84 00004c6d: ADD 00004c6e: PUSH2 0x0463 00004c71: JUMP 00004c72: JUMPDEST 00004c73: PUSH1 0x01 00004c75: PUSH1 0x01 00004c77: PUSH1 0xa0 00004c79: SHL 00004c7a: SUB 00004c7b: DUP4 00004c7c: DUP2 00004c7d: AND 00004c7e: PUSH1 0x00 00004c80: DUP2 00004c81: DUP2 00004c82: MSTORE 00004c83: PUSH1 0x34 00004c85: PUSH1 0x20 00004c87: SWAP1 00004c88: DUP2 00004c89: MSTORE 00004c8a: PUSH1 0x40 00004c8c: DUP1 00004c8d: DUP4 00004c8e: KECCAK256 00004c8f: SWAP5 00004c90: DUP8 00004c91: AND 00004c92: DUP1 00004c93: DUP5 00004c94: MSTORE 00004c95: SWAP5 00004c96: DUP3 00004c97: MSTORE 00004c98: SWAP2 00004c99: DUP3 00004c9a: SWAP1 00004c9b: KECCAK256 00004c9c: DUP6 00004c9d: SWAP1 00004c9e: SSTORE 00004c9f: SWAP1 00004ca0: MLOAD 00004ca1: DUP5 00004ca2: DUP2 00004ca3: MSTORE 00004ca4: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00004cc5: SWAP2 00004cc6: ADD 00004cc7: PUSH1 0x40 00004cc9: MLOAD 00004cca: DUP1 00004ccb: SWAP2 00004ccc: SUB 00004ccd: SWAP1 00004cce: LOG3 00004ccf: POP 00004cd0: POP 00004cd1: POP 00004cd2: JUMP 00004cd3: JUMPDEST 00004cd4: PUSH1 0x01 00004cd6: PUSH1 0x01 00004cd8: PUSH1 0xa0 00004cda: SHL 00004cdb: SUB 00004cdc: DUP4 00004cdd: AND 00004cde: PUSH2 0x0b80 00004ce1: JUMPI 00004ce2: PUSH1 0x40 00004ce4: MLOAD 00004ce5: PUSH3 0x461bcd 00004ce9: PUSH1 0xe5 00004ceb: SHL 00004cec: DUP2 00004ced: MSTORE 00004cee: PUSH1 0x20 00004cf0: PUSH1 0x04 00004cf2: DUP3 00004cf3: ADD 00004cf4: MSTORE 00004cf5: PUSH1 0x25 00004cf7: PUSH1 0x24 00004cf9: DUP3 00004cfa: ADD 00004cfb: MSTORE 00004cfc: PUSH32 0x45524332303a207472616e736665722066726f6d20746865207a65726f206164 00004d1d: PUSH1 0x44 00004d1f: DUP3 00004d20: ADD 00004d21: MSTORE 00004d22: PUSH5 0x6472657373 00004d28: PUSH1 0xd8 00004d2a: SHL 00004d2b: PUSH1 0x64 00004d2d: DUP3 00004d2e: ADD 00004d2f: MSTORE 00004d30: PUSH1 0x84 00004d32: ADD 00004d33: PUSH2 0x0463 00004d36: JUMP 00004d37: JUMPDEST 00004d38: PUSH1 0x01 00004d3a: PUSH1 0x01 00004d3c: PUSH1 0xa0 00004d3e: SHL 00004d3f: SUB 00004d40: DUP3 00004d41: AND 00004d42: PUSH2 0x0be2 00004d45: JUMPI 00004d46: PUSH1 0x40 00004d48: MLOAD 00004d49: PUSH3 0x461bcd 00004d4d: PUSH1 0xe5 00004d4f: SHL 00004d50: DUP2 00004d51: MSTORE 00004d52: PUSH1 0x20 00004d54: PUSH1 0x04 00004d56: DUP3 00004d57: ADD 00004d58: MSTORE 00004d59: PUSH1 0x23 00004d5b: PUSH1 0x24 00004d5d: DUP3 00004d5e: ADD 00004d5f: MSTORE 00004d60: PUSH32 0x45524332303a207472616e7366657220746f20746865207a65726f2061646472 00004d81: PUSH1 0x44 00004d83: DUP3 00004d84: ADD 00004d85: MSTORE 00004d86: PUSH3 0x657373 00004d8a: PUSH1 0xe8 00004d8c: SHL 00004d8d: PUSH1 0x64 00004d8f: DUP3 00004d90: ADD 00004d91: MSTORE 00004d92: PUSH1 0x84 00004d94: ADD 00004d95: PUSH2 0x0463 00004d98: JUMP 00004d99: JUMPDEST 00004d9a: PUSH1 0x01 00004d9c: PUSH1 0x01 00004d9e: PUSH1 0xa0 00004da0: SHL 00004da1: SUB 00004da2: DUP4 00004da3: AND 00004da4: PUSH1 0x00 00004da6: SWAP1 00004da7: DUP2 00004da8: MSTORE 00004da9: PUSH1 0x33 00004dab: PUSH1 0x20 00004dad: MSTORE 00004dae: PUSH1 0x40 00004db0: SWAP1 00004db1: KECCAK256 00004db2: SLOAD 00004db3: DUP2 00004db4: DUP2 00004db5: LT 00004db6: ISZERO 00004db7: PUSH2 0x0c5a 00004dba: JUMPI 00004dbb: PUSH1 0x40 00004dbd: MLOAD 00004dbe: PUSH3 0x461bcd 00004dc2: PUSH1 0xe5 00004dc4: SHL 00004dc5: DUP2 00004dc6: MSTORE 00004dc7: PUSH1 0x20 00004dc9: PUSH1 0x04 00004dcb: DUP3 00004dcc: ADD 00004dcd: MSTORE 00004dce: PUSH1 0x26 00004dd0: PUSH1 0x24 00004dd2: DUP3 00004dd3: ADD 00004dd4: MSTORE 00004dd5: PUSH32 0x45524332303a207472616e7366657220616d6f756e7420657863656564732062 00004df6: PUSH1 0x44 00004df8: DUP3 00004df9: ADD 00004dfa: MSTORE 00004dfb: PUSH6 0x616c616e6365 00004e02: PUSH1 0xd0 00004e04: SHL 00004e05: PUSH1 0x64 00004e07: DUP3 00004e08: ADD 00004e09: MSTORE 00004e0a: PUSH1 0x84 00004e0c: ADD 00004e0d: PUSH2 0x0463 00004e10: JUMP 00004e11: JUMPDEST 00004e12: PUSH1 0x01 00004e14: PUSH1 0x01 00004e16: PUSH1 0xa0 00004e18: SHL 00004e19: SUB 00004e1a: DUP1 00004e1b: DUP6 00004e1c: AND 00004e1d: PUSH1 0x00 00004e1f: SWAP1 00004e20: DUP2 00004e21: MSTORE 00004e22: PUSH1 0x33 00004e24: PUSH1 0x20 00004e26: MSTORE 00004e27: PUSH1 0x40 00004e29: DUP1 00004e2a: DUP3 00004e2b: KECCAK256 00004e2c: DUP6 00004e2d: DUP6 00004e2e: SUB 00004e2f: SWAP1 00004e30: SSTORE 00004e31: SWAP2 00004e32: DUP6 00004e33: AND 00004e34: DUP2 00004e35: MSTORE 00004e36: SWAP1 00004e37: DUP2 00004e38: KECCAK256 00004e39: DUP1 00004e3a: SLOAD 00004e3b: DUP5 00004e3c: SWAP3 00004e3d: SWAP1 00004e3e: PUSH2 0x0c91 00004e41: SWAP1 00004e42: DUP5 00004e43: SWAP1 00004e44: PUSH2 0x1706 00004e47: JUMP 00004e48: JUMPDEST 00004e49: SWAP3 00004e4a: POP 00004e4b: POP 00004e4c: DUP2 00004e4d: SWAP1 00004e4e: SSTORE 00004e4f: POP 00004e50: DUP3 00004e51: PUSH1 0x01 00004e53: PUSH1 0x01 00004e55: PUSH1 0xa0 00004e57: SHL 00004e58: SUB 00004e59: AND 00004e5a: DUP5 00004e5b: PUSH1 0x01 00004e5d: PUSH1 0x01 00004e5f: PUSH1 0xa0 00004e61: SHL 00004e62: SUB 00004e63: AND 00004e64: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00004e85: DUP5 00004e86: PUSH1 0x40 00004e88: MLOAD 00004e89: PUSH2 0x0cdd 00004e8c: SWAP2 00004e8d: DUP2 00004e8e: MSTORE 00004e8f: PUSH1 0x20 00004e91: ADD 00004e92: SWAP1 00004e93: JUMP 00004e94: JUMPDEST 00004e95: PUSH1 0x40 00004e97: MLOAD 00004e98: DUP1 00004e99: SWAP2 00004e9a: SUB 00004e9b: SWAP1 00004e9c: LOG3 00004e9d: POP 00004e9e: POP 00004e9f: POP 00004ea0: POP 00004ea1: JUMP 00004ea2: JUMPDEST 00004ea3: PUSH1 0x01 00004ea5: PUSH1 0x01 00004ea7: PUSH1 0xa0 00004ea9: SHL 00004eaa: SUB 00004eab: DUP3 00004eac: AND 00004ead: PUSH2 0x0d4b 00004eb0: JUMPI 00004eb1: PUSH1 0x40 00004eb3: MLOAD 00004eb4: PUSH3 0x461bcd 00004eb8: PUSH1 0xe5 00004eba: SHL 00004ebb: DUP2 00004ebc: MSTORE 00004ebd: PUSH1 0x20 00004ebf: PUSH1 0x04 00004ec1: DUP3 00004ec2: ADD 00004ec3: MSTORE 00004ec4: PUSH1 0x21 00004ec6: PUSH1 0x24 00004ec8: DUP3 00004ec9: ADD 00004eca: MSTORE 00004ecb: PUSH32 0x45524332303a206275726e2066726f6d20746865207a65726f20616464726573 00004eec: PUSH1 0x44 00004eee: DUP3 00004eef: ADD 00004ef0: MSTORE 00004ef1: PUSH1 0x73 00004ef3: PUSH1 0xf8 00004ef5: SHL 00004ef6: PUSH1 0x64 00004ef8: DUP3 00004ef9: ADD 00004efa: MSTORE 00004efb: PUSH1 0x84 00004efd: ADD 00004efe: PUSH2 0x0463 00004f01: JUMP 00004f02: JUMPDEST 00004f03: PUSH1 0x01 00004f05: PUSH1 0x01 00004f07: PUSH1 0xa0 00004f09: SHL 00004f0a: SUB 00004f0b: DUP3 00004f0c: AND 00004f0d: PUSH1 0x00 00004f0f: SWAP1 00004f10: DUP2 00004f11: MSTORE 00004f12: PUSH1 0x33 00004f14: PUSH1 0x20 00004f16: MSTORE 00004f17: PUSH1 0x40 00004f19: SWAP1 00004f1a: KECCAK256 00004f1b: SLOAD 00004f1c: DUP2 00004f1d: DUP2 00004f1e: LT 00004f1f: ISZERO 00004f20: PUSH2 0x0dbf 00004f23: JUMPI 00004f24: PUSH1 0x40 00004f26: MLOAD 00004f27: PUSH3 0x461bcd 00004f2b: PUSH1 0xe5 00004f2d: SHL 00004f2e: DUP2 00004f2f: MSTORE 00004f30: PUSH1 0x20 00004f32: PUSH1 0x04 00004f34: DUP3 00004f35: ADD 00004f36: MSTORE 00004f37: PUSH1 0x22 00004f39: PUSH1 0x24 00004f3b: DUP3 00004f3c: ADD 00004f3d: MSTORE 00004f3e: PUSH32 0x45524332303a206275726e20616d6f756e7420657863656564732062616c616e 00004f5f: PUSH1 0x44 00004f61: DUP3 00004f62: ADD 00004f63: MSTORE 00004f64: PUSH2 0x6365 00004f67: PUSH1 0xf0 00004f69: SHL 00004f6a: PUSH1 0x64 00004f6c: DUP3 00004f6d: ADD 00004f6e: MSTORE 00004f6f: PUSH1 0x84 00004f71: ADD 00004f72: PUSH2 0x0463 00004f75: JUMP 00004f76: JUMPDEST 00004f77: PUSH1 0x01 00004f79: PUSH1 0x01 00004f7b: PUSH1 0xa0 00004f7d: SHL 00004f7e: SUB 00004f7f: DUP4 00004f80: AND 00004f81: PUSH1 0x00 00004f83: SWAP1 00004f84: DUP2 00004f85: MSTORE 00004f86: PUSH1 0x33 00004f88: PUSH1 0x20 00004f8a: MSTORE 00004f8b: PUSH1 0x40 00004f8d: DUP2 00004f8e: KECCAK256 00004f8f: DUP4 00004f90: DUP4 00004f91: SUB 00004f92: SWAP1 00004f93: SSTORE 00004f94: PUSH1 0x35 00004f96: DUP1 00004f97: SLOAD 00004f98: DUP5 00004f99: SWAP3 00004f9a: SWAP1 00004f9b: PUSH2 0x0dee 00004f9e: SWAP1 00004f9f: DUP5 00004fa0: SWAP1 00004fa1: PUSH2 0x171e 00004fa4: JUMP 00004fa5: JUMPDEST 00004fa6: SWAP1 00004fa7: SWAP2 00004fa8: SSTORE 00004fa9: POP 00004faa: POP 00004fab: PUSH1 0x40 00004fad: MLOAD 00004fae: DUP3 00004faf: DUP2 00004fb0: MSTORE 00004fb1: PUSH1 0x00 00004fb3: SWAP1 00004fb4: PUSH1 0x01 00004fb6: PUSH1 0x01 00004fb8: PUSH1 0xa0 00004fba: SHL 00004fbb: SUB 00004fbc: DUP6 00004fbd: AND 00004fbe: SWAP1 00004fbf: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00004fe0: SWAP1 00004fe1: PUSH1 0x20 00004fe3: ADD 00004fe4: PUSH1 0x40 00004fe6: MLOAD 00004fe7: DUP1 00004fe8: SWAP2 00004fe9: SUB 00004fea: SWAP1 00004feb: LOG3 00004fec: PUSH2 0x07e3 00004fef: JUMP 00004ff0: JUMPDEST 00004ff1: PUSH1 0x97 00004ff3: DUP1 00004ff4: SLOAD 00004ff5: PUSH1 0x01 00004ff7: PUSH1 0x01 00004ff9: PUSH1 0xa0 00004ffb: SHL 00004ffc: SUB 00004ffd: DUP4 00004ffe: DUP2 00004fff: AND 00005000: PUSH1 0x01 00005002: PUSH1 0x01 00005004: PUSH1 0xa0 00005006: SHL 00005007: SUB 00005008: NOT 00005009: DUP4 0000500a: AND 0000500b: DUP2 0000500c: OR 0000500d: SWAP1 0000500e: SWAP4 0000500f: SSTORE 00005010: PUSH1 0x40 00005012: MLOAD 00005013: SWAP2 00005014: AND 00005015: SWAP2 00005016: SWAP1 00005017: DUP3 00005018: SWAP1 00005019: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 0000503a: SWAP1 0000503b: PUSH1 0x00 0000503d: SWAP1 0000503e: LOG3 0000503f: POP 00005040: POP 00005041: JUMP 00005042: JUMPDEST 00005043: PUSH1 0x01 00005045: PUSH1 0x01 00005047: PUSH1 0xa0 00005049: SHL 0000504a: SUB 0000504b: DUP3 0000504c: AND 0000504d: PUSH2 0x0ee1 00005050: JUMPI 00005051: PUSH1 0x40 00005053: MLOAD 00005054: PUSH3 0x461bcd 00005058: PUSH1 0xe5 0000505a: SHL 0000505b: DUP2 0000505c: MSTORE 0000505d: PUSH1 0x20 0000505f: PUSH1 0x04 00005061: DUP3 00005062: ADD 00005063: MSTORE 00005064: PUSH1 0x1f 00005066: PUSH1 0x24 00005068: DUP3 00005069: ADD 0000506a: MSTORE 0000506b: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300 0000508c: PUSH1 0x44 0000508e: DUP3 0000508f: ADD 00005090: MSTORE 00005091: PUSH1 0x64 00005093: ADD 00005094: PUSH2 0x0463 00005097: JUMP 00005098: JUMPDEST 00005099: DUP1 0000509a: PUSH1 0x35 0000509c: PUSH1 0x00 0000509e: DUP3 0000509f: DUP3 000050a0: SLOAD 000050a1: PUSH2 0x0ef3 000050a4: SWAP2 000050a5: SWAP1 000050a6: PUSH2 0x1706 000050a9: JUMP 000050aa: JUMPDEST 000050ab: SWAP1 000050ac: SWAP2 000050ad: SSTORE 000050ae: POP 000050af: POP 000050b0: PUSH1 0x01 000050b2: PUSH1 0x01 000050b4: PUSH1 0xa0 000050b6: SHL 000050b7: SUB 000050b8: DUP3 000050b9: AND 000050ba: PUSH1 0x00 000050bc: SWAP1 000050bd: DUP2 000050be: MSTORE 000050bf: PUSH1 0x33 000050c1: PUSH1 0x20 000050c3: MSTORE 000050c4: PUSH1 0x40 000050c6: DUP2 000050c7: KECCAK256 000050c8: DUP1 000050c9: SLOAD 000050ca: DUP4 000050cb: SWAP3 000050cc: SWAP1 000050cd: PUSH2 0x0f20 000050d0: SWAP1 000050d1: DUP5 000050d2: SWAP1 000050d3: PUSH2 0x1706 000050d6: JUMP 000050d7: JUMPDEST 000050d8: SWAP1 000050d9: SWAP2 000050da: SSTORE 000050db: POP 000050dc: POP 000050dd: PUSH1 0x40 000050df: MLOAD 000050e0: DUP2 000050e1: DUP2 000050e2: MSTORE 000050e3: PUSH1 0x01 000050e5: PUSH1 0x01 000050e7: PUSH1 0xa0 000050e9: SHL 000050ea: SUB 000050eb: DUP4 000050ec: AND 000050ed: SWAP1 000050ee: PUSH1 0x00 000050f0: SWAP1 000050f1: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00005112: SWAP1 00005113: PUSH1 0x20 00005115: ADD 00005116: PUSH1 0x40 00005118: MLOAD 00005119: DUP1 0000511a: SWAP2 0000511b: SUB 0000511c: SWAP1 0000511d: LOG3 0000511e: POP 0000511f: POP 00005120: JUMP 00005121: JUMPDEST 00005122: PUSH1 0x00 00005124: SLOAD 00005125: PUSH2 0x0100 00005128: SWAP1 00005129: DIV 0000512a: PUSH1 0xff 0000512c: AND 0000512d: DUP1 0000512e: PUSH2 0x0f83 00005131: JUMPI 00005132: POP 00005133: PUSH1 0x00 00005135: SLOAD 00005136: PUSH1 0xff 00005138: AND 00005139: ISZERO 0000513a: JUMPDEST 0000513b: PUSH2 0x0f9f 0000513e: JUMPI 0000513f: PUSH1 0x40 00005141: MLOAD 00005142: PUSH3 0x461bcd 00005146: PUSH1 0xe5 00005148: SHL 00005149: DUP2 0000514a: MSTORE 0000514b: PUSH1 0x04 0000514d: ADD 0000514e: PUSH2 0x0463 00005151: SWAP1 00005152: PUSH2 0x1652 00005155: JUMP 00005156: JUMPDEST 00005157: PUSH1 0x00 00005159: SLOAD 0000515a: PUSH2 0x0100 0000515d: SWAP1 0000515e: DIV 0000515f: PUSH1 0xff 00005161: AND 00005162: ISZERO 00005163: DUP1 00005164: ISZERO 00005165: PUSH2 0x0fca 00005168: JUMPI 00005169: PUSH1 0x00 0000516b: DUP1 0000516c: SLOAD 0000516d: PUSH1 0xff 0000516f: NOT 00005170: PUSH2 0xff00 00005173: NOT 00005174: SWAP1 00005175: SWAP2 00005176: AND 00005177: PUSH2 0x0100 0000517a: OR 0000517b: AND 0000517c: PUSH1 0x01 0000517e: OR 0000517f: SWAP1 00005180: SSTORE 00005181: JUMPDEST 00005182: PUSH2 0x0fd2 00005185: PUSH2 0x1076 00005188: JUMP 00005189: JUMPDEST 0000518a: PUSH2 0x0fda 0000518d: PUSH2 0x10e9 00005190: JUMP 00005191: JUMPDEST 00005192: DUP1 00005193: ISZERO 00005194: PUSH2 0x04ca 00005197: JUMPI 00005198: PUSH1 0x00 0000519a: DUP1 0000519b: SLOAD 0000519c: PUSH2 0xff00 0000519f: NOT 000051a0: AND 000051a1: SWAP1 000051a2: SSTORE 000051a3: POP 000051a4: JUMP 000051a5: JUMPDEST 000051a6: PUSH1 0x00 000051a8: SLOAD 000051a9: PUSH2 0x0100 000051ac: SWAP1 000051ad: DIV 000051ae: PUSH1 0xff 000051b0: AND 000051b1: DUP1 000051b2: PUSH2 0x1007 000051b5: JUMPI 000051b6: POP 000051b7: PUSH1 0x00 000051b9: SLOAD 000051ba: PUSH1 0xff 000051bc: AND 000051bd: ISZERO 000051be: JUMPDEST 000051bf: PUSH2 0x1023 000051c2: JUMPI 000051c3: PUSH1 0x40 000051c5: MLOAD 000051c6: PUSH3 0x461bcd 000051ca: PUSH1 0xe5 000051cc: SHL 000051cd: DUP2 000051ce: MSTORE 000051cf: PUSH1 0x04 000051d1: ADD 000051d2: PUSH2 0x0463 000051d5: SWAP1 000051d6: PUSH2 0x1652 000051d9: JUMP 000051da: JUMPDEST 000051db: PUSH1 0x00 000051dd: SLOAD 000051de: PUSH2 0x0100 000051e1: SWAP1 000051e2: DIV 000051e3: PUSH1 0xff 000051e5: AND 000051e6: ISZERO 000051e7: DUP1 000051e8: ISZERO 000051e9: PUSH2 0x104e 000051ec: JUMPI 000051ed: PUSH1 0x00 000051ef: DUP1 000051f0: SLOAD 000051f1: PUSH1 0xff 000051f3: NOT 000051f4: PUSH2 0xff00 000051f7: NOT 000051f8: SWAP1 000051f9: SWAP2 000051fa: AND 000051fb: PUSH2 0x0100 000051fe: OR 000051ff: AND 00005200: PUSH1 0x01 00005202: OR 00005203: SWAP1 00005204: SSTORE 00005205: JUMPDEST 00005206: PUSH2 0x1056 00005209: PUSH2 0x1076 0000520c: JUMP 0000520d: JUMPDEST 0000520e: PUSH2 0x1060 00005211: DUP4 00005212: DUP4 00005213: PUSH2 0x1152 00005216: JUMP 00005217: JUMPDEST 00005218: DUP1 00005219: ISZERO 0000521a: PUSH2 0x07e3 0000521d: JUMPI 0000521e: PUSH1 0x00 00005220: DUP1 00005221: SLOAD 00005222: PUSH2 0xff00 00005225: NOT 00005226: AND 00005227: SWAP1 00005228: SSTORE 00005229: POP 0000522a: POP 0000522b: POP 0000522c: JUMP 0000522d: JUMPDEST 0000522e: PUSH1 0x00 00005230: SLOAD 00005231: PUSH2 0x0100 00005234: SWAP1 00005235: DIV 00005236: PUSH1 0xff 00005238: AND 00005239: DUP1 0000523a: PUSH2 0x108f 0000523d: JUMPI 0000523e: POP 0000523f: PUSH1 0x00 00005241: SLOAD 00005242: PUSH1 0xff 00005244: AND 00005245: ISZERO 00005246: JUMPDEST 00005247: PUSH2 0x10ab 0000524a: JUMPI 0000524b: PUSH1 0x40 0000524d: MLOAD 0000524e: PUSH3 0x461bcd 00005252: PUSH1 0xe5 00005254: SHL 00005255: DUP2 00005256: MSTORE 00005257: PUSH1 0x04 00005259: ADD 0000525a: PUSH2 0x0463 0000525d: SWAP1 0000525e: PUSH2 0x1652 00005261: JUMP 00005262: JUMPDEST 00005263: PUSH1 0x00 00005265: SLOAD 00005266: PUSH2 0x0100 00005269: SWAP1 0000526a: DIV 0000526b: PUSH1 0xff 0000526d: AND 0000526e: ISZERO 0000526f: DUP1 00005270: ISZERO 00005271: PUSH2 0x0fda 00005274: JUMPI 00005275: PUSH1 0x00 00005277: DUP1 00005278: SLOAD 00005279: PUSH1 0xff 0000527b: NOT 0000527c: PUSH2 0xff00 0000527f: NOT 00005280: SWAP1 00005281: SWAP2 00005282: AND 00005283: PUSH2 0x0100 00005286: OR 00005287: AND 00005288: PUSH1 0x01 0000528a: OR 0000528b: SWAP1 0000528c: SSTORE 0000528d: DUP1 0000528e: ISZERO 0000528f: PUSH2 0x04ca 00005292: JUMPI 00005293: PUSH1 0x00 00005295: DUP1 00005296: SLOAD 00005297: PUSH2 0xff00 0000529a: NOT 0000529b: AND 0000529c: SWAP1 0000529d: SSTORE 0000529e: POP 0000529f: JUMP 000052a0: JUMPDEST 000052a1: PUSH1 0x00 000052a3: SLOAD 000052a4: PUSH2 0x0100 000052a7: SWAP1 000052a8: DIV 000052a9: PUSH1 0xff 000052ab: AND 000052ac: DUP1 000052ad: PUSH2 0x1102 000052b0: JUMPI 000052b1: POP 000052b2: PUSH1 0x00 000052b4: SLOAD 000052b5: PUSH1 0xff 000052b7: AND 000052b8: ISZERO 000052b9: JUMPDEST 000052ba: PUSH2 0x111e 000052bd: JUMPI 000052be: PUSH1 0x40 000052c0: MLOAD 000052c1: PUSH3 0x461bcd 000052c5: PUSH1 0xe5 000052c7: SHL 000052c8: DUP2 000052c9: MSTORE 000052ca: PUSH1 0x04 000052cc: ADD 000052cd: PUSH2 0x0463 000052d0: SWAP1 000052d1: PUSH2 0x1652 000052d4: JUMP 000052d5: JUMPDEST 000052d6: PUSH1 0x00 000052d8: SLOAD 000052d9: PUSH2 0x0100 000052dc: SWAP1 000052dd: DIV 000052de: PUSH1 0xff 000052e0: AND 000052e1: ISZERO 000052e2: DUP1 000052e3: ISZERO 000052e4: PUSH2 0x1149 000052e7: JUMPI 000052e8: PUSH1 0x00 000052ea: DUP1 000052eb: SLOAD 000052ec: PUSH1 0xff 000052ee: NOT 000052ef: PUSH2 0xff00 000052f2: NOT 000052f3: SWAP1 000052f4: SWAP2 000052f5: AND 000052f6: PUSH2 0x0100 000052f9: OR 000052fa: AND 000052fb: PUSH1 0x01 000052fd: OR 000052fe: SWAP1 000052ff: SSTORE 00005300: JUMPDEST 00005301: PUSH2 0x0fda 00005304: CALLER 00005305: PUSH2 0x0e39 00005308: JUMP 00005309: JUMPDEST 0000530a: PUSH1 0x00 0000530c: SLOAD 0000530d: PUSH2 0x0100 00005310: SWAP1 00005311: DIV 00005312: PUSH1 0xff 00005314: AND 00005315: DUP1 00005316: PUSH2 0x116b 00005319: JUMPI 0000531a: POP 0000531b: PUSH1 0x00 0000531d: SLOAD 0000531e: PUSH1 0xff 00005320: AND 00005321: ISZERO 00005322: JUMPDEST 00005323: PUSH2 0x1187 00005326: JUMPI 00005327: PUSH1 0x40 00005329: MLOAD 0000532a: PUSH3 0x461bcd 0000532e: PUSH1 0xe5 00005330: SHL 00005331: DUP2 00005332: MSTORE 00005333: PUSH1 0x04 00005335: ADD 00005336: PUSH2 0x0463 00005339: SWAP1 0000533a: PUSH2 0x1652 0000533d: JUMP 0000533e: JUMPDEST 0000533f: PUSH1 0x00 00005341: SLOAD 00005342: PUSH2 0x0100 00005345: SWAP1 00005346: DIV 00005347: PUSH1 0xff 00005349: AND 0000534a: ISZERO 0000534b: DUP1 0000534c: ISZERO 0000534d: PUSH2 0x11b2 00005350: JUMPI 00005351: PUSH1 0x00 00005353: DUP1 00005354: SLOAD 00005355: PUSH1 0xff 00005357: NOT 00005358: PUSH2 0xff00 0000535b: NOT 0000535c: SWAP1 0000535d: SWAP2 0000535e: AND 0000535f: PUSH2 0x0100 00005362: OR 00005363: AND 00005364: PUSH1 0x01 00005366: OR 00005367: SWAP1 00005368: SSTORE 00005369: JUMPDEST 0000536a: DUP3 0000536b: MLOAD 0000536c: PUSH2 0x11c5 0000536f: SWAP1 00005370: PUSH1 0x36 00005372: SWAP1 00005373: PUSH1 0x20 00005375: DUP7 00005376: ADD 00005377: SWAP1 00005378: PUSH2 0x11f0 0000537b: JUMP 0000537c: JUMPDEST 0000537d: POP 0000537e: DUP2 0000537f: MLOAD 00005380: PUSH2 0x11d9 00005383: SWAP1 00005384: PUSH1 0x37 00005386: SWAP1 00005387: PUSH1 0x20 00005389: DUP6 0000538a: ADD 0000538b: SWAP1 0000538c: PUSH2 0x11f0 0000538f: JUMP 00005390: JUMPDEST 00005391: POP 00005392: DUP1 00005393: ISZERO 00005394: PUSH2 0x07e3 00005397: JUMPI 00005398: PUSH1 0x00 0000539a: DUP1 0000539b: SLOAD 0000539c: PUSH2 0xff00 0000539f: NOT 000053a0: AND 000053a1: SWAP1 000053a2: SSTORE 000053a3: POP 000053a4: POP 000053a5: POP 000053a6: JUMP 000053a7: JUMPDEST 000053a8: DUP3 000053a9: DUP1 000053aa: SLOAD 000053ab: PUSH2 0x11fc 000053ae: SWAP1 000053af: PUSH2 0x1735 000053b2: JUMP 000053b3: JUMPDEST 000053b4: SWAP1 000053b5: PUSH1 0x00 000053b7: MSTORE 000053b8: PUSH1 0x20 000053ba: PUSH1 0x00 000053bc: KECCAK256 000053bd: SWAP1 000053be: PUSH1 0x1f 000053c0: ADD 000053c1: PUSH1 0x20 000053c3: SWAP1 000053c4: DIV 000053c5: DUP2 000053c6: ADD 000053c7: SWAP3 000053c8: DUP3 000053c9: PUSH2 0x121e 000053cc: JUMPI 000053cd: PUSH1 0x00 000053cf: DUP6 000053d0: SSTORE 000053d1: PUSH2 0x1264 000053d4: JUMP 000053d5: JUMPDEST 000053d6: DUP3 000053d7: PUSH1 0x1f 000053d9: LT 000053da: PUSH2 0x1237 000053dd: JUMPI 000053de: DUP1 000053df: MLOAD 000053e0: PUSH1 0xff 000053e2: NOT 000053e3: AND 000053e4: DUP4 000053e5: DUP1 000053e6: ADD 000053e7: OR 000053e8: DUP6 000053e9: SSTORE 000053ea: PUSH2 0x1264 000053ed: JUMP 000053ee: JUMPDEST 000053ef: DUP3 000053f0: DUP1 000053f1: ADD 000053f2: PUSH1 0x01 000053f4: ADD 000053f5: DUP6 000053f6: SSTORE 000053f7: DUP3 000053f8: ISZERO 000053f9: PUSH2 0x1264 000053fc: JUMPI 000053fd: SWAP2 000053fe: DUP3 000053ff: ADD 00005400: JUMPDEST 00005401: DUP3 00005402: DUP2 00005403: GT 00005404: ISZERO 00005405: PUSH2 0x1264 00005408: JUMPI 00005409: DUP3 0000540a: MLOAD 0000540b: DUP3 0000540c: SSTORE 0000540d: SWAP2 0000540e: PUSH1 0x20 00005410: ADD 00005411: SWAP2 00005412: SWAP1 00005413: PUSH1 0x01 00005415: ADD 00005416: SWAP1 00005417: PUSH2 0x1249 0000541a: JUMP 0000541b: JUMPDEST 0000541c: POP 0000541d: PUSH2 0x1270 00005420: SWAP3 00005421: SWAP2 00005422: POP 00005423: PUSH2 0x1274 00005426: JUMP 00005427: JUMPDEST 00005428: POP 00005429: SWAP1 0000542a: JUMP 0000542b: JUMPDEST 0000542c: JUMPDEST 0000542d: DUP1 0000542e: DUP3 0000542f: GT 00005430: ISZERO 00005431: PUSH2 0x1270 00005434: JUMPI 00005435: PUSH1 0x00 00005437: DUP2 00005438: SSTORE 00005439: PUSH1 0x01 0000543b: ADD 0000543c: PUSH2 0x1275 0000543f: JUMP 00005440: JUMPDEST 00005441: DUP1 00005442: CALLDATALOAD 00005443: PUSH1 0x01 00005445: PUSH1 0x01 00005447: PUSH1 0xa0 00005449: SHL 0000544a: SUB 0000544b: DUP2 0000544c: AND 0000544d: DUP2 0000544e: EQ 0000544f: PUSH2 0x04e7 00005452: JUMPI 00005453: PUSH1 0x00 00005455: DUP1 00005456: REVERT 00005457: JUMPDEST 00005458: PUSH1 0x00 0000545a: DUP3 0000545b: PUSH1 0x1f 0000545d: DUP4 0000545e: ADD 0000545f: SLT 00005460: PUSH2 0x12b0 00005463: JUMPI 00005464: DUP1 00005465: DUP2 00005466: REVERT 00005467: JUMPDEST 00005468: DUP2 00005469: CALLDATALOAD 0000546a: PUSH8 0xffffffffffffffff 00005473: DUP2 00005474: GT 00005475: ISZERO 00005476: PUSH2 0x12ca 00005479: JUMPI 0000547a: PUSH2 0x12ca 0000547d: PUSH2 0x1786 00005480: JUMP 00005481: JUMPDEST 00005482: PUSH2 0x12dd 00005485: PUSH1 0x1f 00005487: DUP3 00005488: ADD 00005489: PUSH1 0x1f 0000548b: NOT 0000548c: AND 0000548d: PUSH1 0x20 0000548f: ADD 00005490: PUSH2 0x16d5 00005493: JUMP 00005494: JUMPDEST 00005495: DUP2 00005496: DUP2 00005497: MSTORE 00005498: DUP5 00005499: PUSH1 0x20 0000549b: DUP4 0000549c: DUP7 0000549d: ADD 0000549e: ADD 0000549f: GT 000054a0: ISZERO 000054a1: PUSH2 0x12f1 000054a4: JUMPI 000054a5: DUP3 000054a6: DUP4 000054a7: REVERT 000054a8: JUMPDEST 000054a9: DUP2 000054aa: PUSH1 0x20 000054ac: DUP6 000054ad: ADD 000054ae: PUSH1 0x20 000054b0: DUP4 000054b1: ADD 000054b2: CALLDATACOPY 000054b3: SWAP1 000054b4: DUP2 000054b5: ADD 000054b6: PUSH1 0x20 000054b8: ADD 000054b9: SWAP2 000054ba: SWAP1 000054bb: SWAP2 000054bc: MSTORE 000054bd: SWAP3 000054be: SWAP2 000054bf: POP 000054c0: POP 000054c1: JUMP 000054c2: JUMPDEST 000054c3: PUSH1 0x00 000054c5: PUSH1 0x20 000054c7: DUP3 000054c8: DUP5 000054c9: SUB 000054ca: SLT 000054cb: ISZERO 000054cc: PUSH2 0x131c 000054cf: JUMPI 000054d0: DUP1 000054d1: DUP2 000054d2: REVERT 000054d3: JUMPDEST 000054d4: PUSH2 0x1325 000054d7: DUP3 000054d8: PUSH2 0x1289 000054db: JUMP 000054dc: JUMPDEST 000054dd: SWAP4 000054de: SWAP3 000054df: POP 000054e0: POP 000054e1: POP 000054e2: JUMP 000054e3: JUMPDEST 000054e4: PUSH1 0x00 000054e6: DUP1 000054e7: PUSH1 0x40 000054e9: DUP4 000054ea: DUP6 000054eb: SUB 000054ec: SLT 000054ed: ISZERO 000054ee: PUSH2 0x133e 000054f1: JUMPI 000054f2: DUP1 000054f3: DUP2 000054f4: REVERT 000054f5: JUMPDEST 000054f6: PUSH2 0x1347 000054f9: DUP4 000054fa: PUSH2 0x1289 000054fd: JUMP 000054fe: JUMPDEST 000054ff: SWAP2 00005500: POP 00005501: PUSH2 0x1355 00005504: PUSH1 0x20 00005506: DUP5 00005507: ADD 00005508: PUSH2 0x1289 0000550b: JUMP 0000550c: JUMPDEST 0000550d: SWAP1 0000550e: POP 0000550f: SWAP3 00005510: POP 00005511: SWAP3 00005512: SWAP1 00005513: POP 00005514: JUMP 00005515: JUMPDEST 00005516: PUSH1 0x00 00005518: DUP1 00005519: PUSH1 0x00 0000551b: PUSH1 0x60 0000551d: DUP5 0000551e: DUP7 0000551f: SUB 00005520: SLT 00005521: ISZERO 00005522: PUSH2 0x1372 00005525: JUMPI 00005526: DUP1 00005527: DUP2 00005528: REVERT 00005529: JUMPDEST 0000552a: PUSH2 0x137b 0000552d: DUP5 0000552e: PUSH2 0x1289 00005531: JUMP 00005532: JUMPDEST 00005533: SWAP3 00005534: POP 00005535: PUSH2 0x1389 00005538: PUSH1 0x20 0000553a: DUP6 0000553b: ADD 0000553c: PUSH2 0x1289 0000553f: JUMP 00005540: JUMPDEST 00005541: SWAP2 00005542: POP 00005543: PUSH1 0x40 00005545: DUP5 00005546: ADD 00005547: CALLDATALOAD 00005548: SWAP1 00005549: POP 0000554a: SWAP3 0000554b: POP 0000554c: SWAP3 0000554d: POP 0000554e: SWAP3 0000554f: JUMP 00005550: JUMPDEST 00005551: PUSH1 0x00 00005553: DUP1 00005554: PUSH1 0x00 00005556: DUP1 00005557: PUSH1 0x00 00005559: PUSH1 0xa0 0000555b: DUP7 0000555c: DUP9 0000555d: SUB 0000555e: SLT 0000555f: ISZERO 00005560: PUSH2 0x13b0 00005563: JUMPI 00005564: DUP1 00005565: DUP2 00005566: REVERT 00005567: JUMPDEST 00005568: PUSH2 0x13b9 0000556b: DUP7 0000556c: PUSH2 0x1289 0000556f: JUMP 00005570: JUMPDEST 00005571: SWAP5 00005572: POP 00005573: PUSH1 0x20 00005575: PUSH2 0x13c8 00005578: DUP2 00005579: DUP9 0000557a: ADD 0000557b: PUSH2 0x1289 0000557e: JUMP 0000557f: JUMPDEST 00005580: SWAP5 00005581: POP 00005582: PUSH1 0x40 00005584: DUP8 00005585: ADD 00005586: CALLDATALOAD 00005587: SWAP4 00005588: POP 00005589: PUSH1 0x60 0000558b: DUP8 0000558c: ADD 0000558d: CALLDATALOAD 0000558e: PUSH8 0xffffffffffffffff 00005597: DUP1 00005598: DUP3 00005599: GT 0000559a: ISZERO 0000559b: PUSH2 0x13eb 0000559e: JUMPI 0000559f: DUP4 000055a0: DUP5 000055a1: REVERT 000055a2: JUMPDEST 000055a3: DUP2 000055a4: DUP10 000055a5: ADD 000055a6: SWAP2 000055a7: POP 000055a8: DUP10 000055a9: PUSH1 0x1f 000055ab: DUP4 000055ac: ADD 000055ad: SLT 000055ae: PUSH2 0x13fe 000055b1: JUMPI 000055b2: DUP4 000055b3: DUP5 000055b4: REVERT 000055b5: JUMPDEST 000055b6: DUP2 000055b7: CALLDATALOAD 000055b8: DUP2 000055b9: DUP2 000055ba: GT 000055bb: ISZERO 000055bc: PUSH2 0x1410 000055bf: JUMPI 000055c0: PUSH2 0x1410 000055c3: PUSH2 0x1786 000055c6: JUMP 000055c7: JUMPDEST 000055c8: DUP4 000055c9: DUP2 000055ca: MUL 000055cb: SWAP2 000055cc: POP 000055cd: PUSH2 0x1420 000055d0: DUP5 000055d1: DUP4 000055d2: ADD 000055d3: PUSH2 0x16d5 000055d6: JUMP 000055d7: JUMPDEST 000055d8: DUP2 000055d9: DUP2 000055da: MSTORE 000055db: DUP5 000055dc: DUP2 000055dd: ADD 000055de: SWAP1 000055df: DUP5 000055e0: DUP7 000055e1: ADD 000055e2: DUP5 000055e3: DUP7 000055e4: ADD 000055e5: DUP8 000055e6: ADD 000055e7: DUP15 000055e8: LT 000055e9: ISZERO 000055ea: PUSH2 0x143a 000055ed: JUMPI 000055ee: DUP8 000055ef: DUP9 000055f0: REVERT 000055f1: JUMPDEST 000055f2: DUP8 000055f3: SWAP6 000055f4: POP 000055f5: JUMPDEST 000055f6: DUP4 000055f7: DUP7 000055f8: LT 000055f9: ISZERO 000055fa: PUSH2 0x145c 000055fd: JUMPI 000055fe: DUP1 000055ff: CALLDATALOAD 00005600: DUP4 00005601: MSTORE 00005602: PUSH1 0x01 00005604: SWAP6 00005605: SWAP1 00005606: SWAP6 00005607: ADD 00005608: SWAP5 00005609: SWAP2 0000560a: DUP7 0000560b: ADD 0000560c: SWAP2 0000560d: DUP7 0000560e: ADD 0000560f: PUSH2 0x143e 00005612: JUMP 00005613: JUMPDEST 00005614: POP 00005615: SWAP10 00005616: SWAP13 00005617: SWAP9 00005618: SWAP12 00005619: POP 0000561a: SWAP7 0000561b: SWAP10 0000561c: PUSH1 0x80 0000561e: ADD 0000561f: CALLDATALOAD 00005620: SWAP8 00005621: SWAP7 00005622: POP 00005623: POP 00005624: POP 00005625: POP 00005626: POP 00005627: POP 00005628: POP 00005629: JUMP 0000562a: JUMPDEST 0000562b: PUSH1 0x00 0000562d: DUP1 0000562e: PUSH1 0x40 00005630: DUP4 00005631: DUP6 00005632: SUB 00005633: SLT 00005634: ISZERO 00005635: PUSH2 0x1485 00005638: JUMPI 00005639: DUP2 0000563a: DUP3 0000563b: REVERT 0000563c: JUMPDEST 0000563d: PUSH2 0x148e 00005640: DUP4 00005641: PUSH2 0x1289 00005644: JUMP 00005645: JUMPDEST 00005646: SWAP5 00005647: PUSH1 0x20 00005649: SWAP4 0000564a: SWAP1 0000564b: SWAP4 0000564c: ADD 0000564d: CALLDATALOAD 0000564e: SWAP4 0000564f: POP 00005650: POP 00005651: POP 00005652: JUMP 00005653: JUMPDEST 00005654: PUSH1 0x00 00005656: DUP1 00005657: PUSH1 0x00 00005659: DUP1 0000565a: PUSH1 0x00 0000565c: PUSH1 0xa0 0000565e: DUP7 0000565f: DUP9 00005660: SUB 00005661: SLT 00005662: ISZERO 00005663: PUSH2 0x14b3 00005666: JUMPI 00005667: DUP1 00005668: DUP2 00005669: REVERT 0000566a: JUMPDEST 0000566b: PUSH2 0x14bc 0000566e: DUP7 0000566f: PUSH2 0x1289 00005672: JUMP 00005673: JUMPDEST 00005674: SWAP5 00005675: POP 00005676: PUSH1 0x20 00005678: DUP7 00005679: ADD 0000567a: CALLDATALOAD 0000567b: SWAP4 0000567c: POP 0000567d: PUSH1 0x40 0000567f: DUP7 00005680: ADD 00005681: CALLDATALOAD 00005682: PUSH8 0xffffffffffffffff 0000568b: DUP1 0000568c: DUP3 0000568d: GT 0000568e: ISZERO 0000568f: PUSH2 0x14df 00005692: JUMPI 00005693: DUP3 00005694: DUP4 00005695: REVERT 00005696: JUMPDEST 00005697: PUSH2 0x14eb 0000569a: DUP10 0000569b: DUP4 0000569c: DUP11 0000569d: ADD 0000569e: PUSH2 0x12a0 000056a1: JUMP 000056a2: JUMPDEST 000056a3: SWAP5 000056a4: POP 000056a5: PUSH1 0x60 000056a7: DUP9 000056a8: ADD 000056a9: CALLDATALOAD 000056aa: SWAP2 000056ab: POP 000056ac: DUP1 000056ad: DUP3 000056ae: GT 000056af: ISZERO 000056b0: PUSH2 0x1500 000056b3: JUMPI 000056b4: DUP3 000056b5: DUP4 000056b6: REVERT 000056b7: JUMPDEST 000056b8: POP 000056b9: PUSH2 0x150d 000056bc: DUP9 000056bd: DUP3 000056be: DUP10 000056bf: ADD 000056c0: PUSH2 0x12a0 000056c3: JUMP 000056c4: JUMPDEST 000056c5: SWAP3 000056c6: POP 000056c7: POP 000056c8: PUSH1 0x80 000056ca: DUP7 000056cb: ADD 000056cc: CALLDATALOAD 000056cd: PUSH1 0xff 000056cf: DUP2 000056d0: AND 000056d1: DUP2 000056d2: EQ 000056d3: PUSH2 0x1523 000056d6: JUMPI 000056d7: DUP2 000056d8: DUP3 000056d9: REVERT 000056da: JUMPDEST 000056db: DUP1 000056dc: SWAP2 000056dd: POP 000056de: POP 000056df: SWAP3 000056e0: SWAP6 000056e1: POP 000056e2: SWAP3 000056e3: SWAP6 000056e4: SWAP1 000056e5: SWAP4 000056e6: POP 000056e7: JUMP 000056e8: JUMPDEST 000056e9: PUSH1 0x00 000056eb: PUSH1 0x20 000056ed: DUP3 000056ee: DUP5 000056ef: SUB 000056f0: SLT 000056f1: ISZERO 000056f2: PUSH2 0x1542 000056f5: JUMPI 000056f6: DUP1 000056f7: DUP2 000056f8: REVERT 000056f9: JUMPDEST 000056fa: POP 000056fb: CALLDATALOAD 000056fc: SWAP2 000056fd: SWAP1 000056fe: POP 000056ff: JUMP 00005700: JUMPDEST 00005701: PUSH1 0x00 00005703: DUP2 00005704: MLOAD 00005705: DUP1 00005706: DUP5 00005707: MSTORE 00005708: DUP2 00005709: JUMPDEST 0000570a: DUP2 0000570b: DUP2 0000570c: LT 0000570d: ISZERO 0000570e: PUSH2 0x156e 00005711: JUMPI 00005712: PUSH1 0x20 00005714: DUP2 00005715: DUP6 00005716: ADD 00005717: DUP2 00005718: ADD 00005719: MLOAD 0000571a: DUP7 0000571b: DUP4 0000571c: ADD 0000571d: DUP3 0000571e: ADD 0000571f: MSTORE 00005720: ADD 00005721: PUSH2 0x1552 00005724: JUMP 00005725: JUMPDEST 00005726: DUP2 00005727: DUP2 00005728: GT 00005729: ISZERO 0000572a: PUSH2 0x157f 0000572d: JUMPI 0000572e: DUP3 0000572f: PUSH1 0x20 00005731: DUP4 00005732: DUP8 00005733: ADD 00005734: ADD 00005735: MSTORE 00005736: JUMPDEST 00005737: POP 00005738: PUSH1 0x1f 0000573a: ADD 0000573b: PUSH1 0x1f 0000573d: NOT 0000573e: AND 0000573f: SWAP3 00005740: SWAP1 00005741: SWAP3 00005742: ADD 00005743: PUSH1 0x20 00005745: ADD 00005746: SWAP3 00005747: SWAP2 00005748: POP 00005749: POP 0000574a: JUMP 0000574b: JUMPDEST 0000574c: PUSH1 0x01 0000574e: PUSH1 0x01 00005750: PUSH1 0xa0 00005752: SHL 00005753: SUB 00005754: DUP10 00005755: DUP2 00005756: AND 00005757: DUP3 00005758: MSTORE 00005759: DUP9 0000575a: AND 0000575b: PUSH1 0x20 0000575d: DUP1 0000575e: DUP4 0000575f: ADD 00005760: SWAP2 00005761: SWAP1 00005762: SWAP2 00005763: MSTORE 00005764: PUSH1 0x40 00005766: DUP3 00005767: ADD 00005768: DUP9 00005769: SWAP1 0000576a: MSTORE 0000576b: PUSH2 0x0100 0000576e: PUSH1 0x60 00005770: DUP4 00005771: ADD 00005772: DUP2 00005773: SWAP1 00005774: MSTORE 00005775: DUP8 00005776: MLOAD 00005777: SWAP1 00005778: DUP4 00005779: ADD 0000577a: DUP2 0000577b: SWAP1 0000577c: MSTORE 0000577d: PUSH1 0x00 0000577f: SWAP2 00005780: PUSH2 0x0120 00005783: DUP5 00005784: ADD 00005785: SWAP2 00005786: DUP10 00005787: DUP3 00005788: ADD 00005789: SWAP2 0000578a: DUP5 0000578b: JUMPDEST 0000578c: DUP3 0000578d: DUP2 0000578e: LT 0000578f: ISZERO 00005790: PUSH2 0x15f0 00005793: JUMPI 00005794: DUP4 00005795: MLOAD 00005796: DUP6 00005797: MSTORE 00005798: SWAP4 00005799: DUP2 0000579a: ADD 0000579b: SWAP4 0000579c: SWAP3 0000579d: DUP2 0000579e: ADD 0000579f: SWAP3 000057a0: PUSH1 0x01 000057a2: ADD 000057a3: PUSH2 0x15d4 000057a6: JUMP 000057a7: JUMPDEST 000057a8: POP 000057a9: POP 000057aa: POP 000057ab: POP 000057ac: DUP7 000057ad: PUSH1 0x80 000057af: DUP5 000057b0: ADD 000057b1: MSTORE 000057b2: DUP3 000057b3: DUP2 000057b4: SUB 000057b5: PUSH1 0xa0 000057b7: DUP5 000057b8: ADD 000057b9: MSTORE 000057ba: PUSH2 0x160c 000057bd: DUP2 000057be: DUP8 000057bf: PUSH2 0x1549 000057c2: JUMP 000057c3: JUMPDEST 000057c4: SWAP1 000057c5: POP 000057c6: DUP3 000057c7: DUP2 000057c8: SUB 000057c9: PUSH1 0xc0 000057cb: DUP5 000057cc: ADD 000057cd: MSTORE 000057ce: PUSH2 0x1620 000057d1: DUP2 000057d2: DUP7 000057d3: PUSH2 0x1549 000057d6: JUMP 000057d7: JUMPDEST 000057d8: SWAP2 000057d9: POP 000057da: POP 000057db: PUSH2 0x1632 000057de: PUSH1 0xe0 000057e0: DUP4 000057e1: ADD 000057e2: DUP5 000057e3: PUSH1 0xff 000057e5: AND 000057e6: SWAP1 000057e7: MSTORE 000057e8: JUMP 000057e9: JUMPDEST 000057ea: SWAP10 000057eb: SWAP9 000057ec: POP 000057ed: POP 000057ee: POP 000057ef: POP 000057f0: POP 000057f1: POP 000057f2: POP 000057f3: POP 000057f4: POP 000057f5: JUMP 000057f6: JUMPDEST 000057f7: PUSH1 0x00 000057f9: PUSH1 0x20 000057fb: DUP3 000057fc: MSTORE 000057fd: PUSH2 0x1325 00005800: PUSH1 0x20 00005802: DUP4 00005803: ADD 00005804: DUP5 00005805: PUSH2 0x1549 00005808: JUMP 00005809: JUMPDEST 0000580a: PUSH1 0x20 0000580c: DUP1 0000580d: DUP3 0000580e: MSTORE 0000580f: PUSH1 0x2e 00005811: SWAP1 00005812: DUP3 00005813: ADD 00005814: MSTORE 00005815: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00005836: PUSH1 0x40 00005838: DUP3 00005839: ADD 0000583a: MSTORE 0000583b: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 0000584a: PUSH1 0x92 0000584c: SHL 0000584d: PUSH1 0x60 0000584f: DUP3 00005850: ADD 00005851: MSTORE 00005852: PUSH1 0x80 00005854: ADD 00005855: SWAP1 00005856: JUMP 00005857: JUMPDEST 00005858: PUSH1 0x20 0000585a: DUP1 0000585b: DUP3 0000585c: MSTORE 0000585d: DUP2 0000585e: DUP2 0000585f: ADD 00005860: MSTORE 00005861: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00005882: PUSH1 0x40 00005884: DUP3 00005885: ADD 00005886: MSTORE 00005887: PUSH1 0x60 00005889: ADD 0000588a: SWAP1 0000588b: JUMP 0000588c: JUMPDEST 0000588d: PUSH1 0x40 0000588f: MLOAD 00005890: PUSH1 0x1f 00005892: DUP3 00005893: ADD 00005894: PUSH1 0x1f 00005896: NOT 00005897: AND 00005898: DUP2 00005899: ADD 0000589a: PUSH8 0xffffffffffffffff 000058a3: DUP2 000058a4: GT 000058a5: DUP3 000058a6: DUP3 000058a7: LT 000058a8: OR 000058a9: ISZERO 000058aa: PUSH2 0x16fe 000058ad: JUMPI 000058ae: PUSH2 0x16fe 000058b1: PUSH2 0x1786 000058b4: JUMP 000058b5: JUMPDEST 000058b6: PUSH1 0x40 000058b8: MSTORE 000058b9: SWAP2 000058ba: SWAP1 000058bb: POP 000058bc: JUMP 000058bd: JUMPDEST 000058be: PUSH1 0x00 000058c0: DUP3 000058c1: NOT 000058c2: DUP3 000058c3: GT 000058c4: ISZERO 000058c5: PUSH2 0x1719 000058c8: JUMPI 000058c9: PUSH2 0x1719 000058cc: PUSH2 0x1770 000058cf: JUMP 000058d0: JUMPDEST 000058d1: POP 000058d2: ADD 000058d3: SWAP1 000058d4: JUMP 000058d5: JUMPDEST 000058d6: PUSH1 0x00 000058d8: DUP3 000058d9: DUP3 000058da: LT 000058db: ISZERO 000058dc: PUSH2 0x1730 000058df: JUMPI 000058e0: PUSH2 0x1730 000058e3: PUSH2 0x1770 000058e6: JUMP 000058e7: JUMPDEST 000058e8: POP 000058e9: SUB 000058ea: SWAP1 000058eb: JUMP 000058ec: JUMPDEST 000058ed: PUSH1 0x02 000058ef: DUP2 000058f0: DIV 000058f1: PUSH1 0x01 000058f3: DUP3 000058f4: AND 000058f5: DUP1 000058f6: PUSH2 0x1749 000058f9: JUMPI 000058fa: PUSH1 0x7f 000058fc: DUP3 000058fd: AND 000058fe: SWAP2 000058ff: POP 00005900: JUMPDEST 00005901: PUSH1 0x20 00005903: DUP3 00005904: LT 00005905: DUP2 00005906: EQ 00005907: ISZERO 00005908: PUSH2 0x176a 0000590b: JUMPI 0000590c: PUSH4 0x4e487b71 00005911: PUSH1 0xe0 00005913: SHL 00005914: PUSH1 0x00 00005916: MSTORE 00005917: PUSH1 0x22 00005919: PUSH1 0x04 0000591b: MSTORE 0000591c: PUSH1 0x24 0000591e: PUSH1 0x00 00005920: REVERT 00005921: JUMPDEST 00005922: POP 00005923: SWAP2 00005924: SWAP1 00005925: POP 00005926: JUMP 00005927: JUMPDEST 00005928: PUSH4 0x4e487b71 0000592d: PUSH1 0xe0 0000592f: SHL 00005930: PUSH1 0x00 00005932: MSTORE 00005933: PUSH1 0x11 00005935: PUSH1 0x04 00005937: MSTORE 00005938: PUSH1 0x24 0000593a: PUSH1 0x00 0000593c: REVERT 0000593d: JUMPDEST 0000593e: PUSH4 0x4e487b71 00005943: PUSH1 0xe0 00005945: SHL 00005946: PUSH1 0x00 00005948: MSTORE 00005949: PUSH1 0x41 0000594b: PUSH1 0x04 0000594d: MSTORE 0000594e: PUSH1 0x24 00005950: PUSH1 0x00 00005952: REVERT 00005953: INVALID 00005954: LOG2 00005955: PUSH5 0x6970667358 0000595b: UNKNOWN(0x22) 0000595c: SLT 0000595d: KECCAK256 0000595e: SWAP9 0000595f: CREATE2 00005960: SLOAD 00005961: RETURN 00005962: PUSH21 0x761867ed2997038a7073492d1a0fcc5b1089e4a54b 00005978: UNKNOWN(0x2A) 00005979: UNKNOWN(0xBE) 0000597a: EXTCODESIZE 0000597b: PUSH19 0x11cc64736f6c63430008020033416464726573 0000598f: PUSH20 0x3a206c6f772d6c6576656c2064656c6567617465 000059a4: KECCAK256 000059a5: PUSH4 0x616c6c20 000059aa: PUSH7 0x61696c6564a264 000059b2: PUSH10 0x706673582212206a5b73 000059bd: ADD 000059be: UNKNOWN(0xF9) 000059bf: PUSH28 0x6fb738f85a5692f74fae70309adefc46305ee3f5c74918f47a116473 000059dc: PUSH16
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xe5702b486811990b44f992619c6140eb7de8f7d986bfb8e8febdb09ccb0534da
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0xe5702b486811990b44f992619c6140eb7de8f7d986bfb8e8febdb09ccb0534da",
"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": "0xdf2ebdbb",
"selector": "0xdf2ebdbb",
"calldata_variants": [
"0xdf2ebdbb",
"0xdf2ebdbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7246042",
"selector": "0xe7246042",
"calldata_variants": [
"0xe7246042",
"0xe72460420000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe9008d5b",
"selector": "0xe9008d5b",
"calldata_variants": [
"0xe9008d5b",
"0xe9008d5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xefdcd974",
"selector": "0xefdcd974",
"calldata_variants": [
"0xefdcd974",
"0xefdcd9740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffb2efb8",
"selector": "0xffb2efb8",
"calldata_variants": [
"0xffb2efb8",
"0xffb2efb80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc60c9a54",
"selector": "0xc60c9a54",
"calldata_variants": [
"0xc60c9a54",
"0xc60c9a540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4638d4e",
"selector": "0xd4638d4e",
"calldata_variants": [
"0xd4638d4e",
"0xd4638d4e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 12898,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | reentrancy | slither | Reentrancy in GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8) (contracts/generic/GenericBridge.sol#308-459): | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "reentrancy-eth",
"elements": [
{
"name": "claimToken",
"type": "function",
"source_mapping": {
"lines": [
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459
],
"start": 10736,
"length": 4869,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"type_specific_fields": {
"parent": {
"name": "GenericBridge",
"type": "contract",
"source_mapping": {
"lines": [
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642
],
"start": 915,
"length": 20422,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
}
},
"signature": "claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)"
}
},
{
"name": "payClaimFee(msg.value)",
"type": "node",
"source_mapping": {
"lines": [
341
],
"start": 11720,
"length": 22,
"ending_column": 31,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 9,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "claimToken",
"type": "function",
"source_mapping": {
"lines": [
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459
],
"start": 10736,
"length": 4869,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"type_specific_fields": {
"parent": {
"name": "GenericBridge",
"type": "contract",
"source_mapping": {
"lines": [
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642
],
"start": 915,
"length": 20422,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
}
},
"signature": "claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)"
}
}
}
},
{
"name": "address(governance).sendValue(_amount)",
"type": "node",
"source_mapping": {
"lines": [
496
],
"start": 16638,
"length": 38,
"ending_column": 51,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 13,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "payClaimFee",
"type": "function",
"source_mapping": {
"lines": [
493,
494,
495,
496,
497,
498
],
"start": 16489,
"length": 204,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"type_specific_fields": {
"parent": {
"name": "GenericBridge",
"type": "contract",
"source_mapping": {
"lines": [
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642
],
"start": 915,
"length": 20422,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
}
},
"signature": "payClaimFee(uint256)"
}
}
}
},
{
"name": "(success,None) = recipient.call{value: amount}()",
"type": "node",
"source_mapping": {
"lines": [
57
],
"start": 2188,
"length": 52,
"ending_column": 61,
"is_dependency": false,
"filename_short": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"starting_column": 9,
"filename_absolute": "/tmp/slither-menrpxh_/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"filename_relative": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "sendValue",
"type": "function",
"source_mapping": {
"lines": [
54,
55,
56,
57,
58,
59
],
"start": 2023,
"length": 312,
"ending_column": 6,
"is_dependency": false,
"filename_short": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"filename_relative": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol"
},
"type_specific_fields": {
"parent": {
"name": "AddressUpgradeable",
"type": "contract",
"source_mapping": {
"lines": [
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189
],
"start": 126,
"length": 6790,
"ending_column": 2,
"is_dependency": false,
"filename_short": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"filename_relative": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol"
}
},
"signature": "sendValue(address,uint256)"
}
}
}
},
{
"name": "bt.initialize(_originToken,_chainIdsIndex[0],_name,_symbol,_decimals)",
"type": "node",
"source_mapping": {
"lines": [
351,
352,
353,
354,
355,
356,
357
],
"start": 12176,
"length": 215,
"ending_column": 22,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 21,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "claimToken",
"type": "function",
"source_mapping": {
"lines": [
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459
],
"start": 10736,
"length": 4869,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"type_specific_fields": {
"parent": {
"name": "GenericBridge",
"type": "contract",
"source_mapping": {
"lines": [
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642
],
"start": 915,
"length": 20422,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
}
},
"signature": "claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)"
}
}
}
}
],
"locations": [
{
"file": "contracts/generic/GenericBridge.sol",
"name": "claimToken",
"type": "function",
"lines": [
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459
]
},
{
"file": "contracts/generic/GenericBridge.sol",
"name": "payClaimFee(msg.value)",
"type": "node",
"lines": [
341
]
},
{
"file": "contracts/generic/GenericBridge.sol",
"name": "address(governance).sendValue(_amount)",
"type": "node",
"lines": [
496
]
},
{
"file": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"name": "(success,None) = recipient.call{value: amount}()",
"type": "node",
"lines": [
57
]
},
{
"file": "contracts/generic/GenericBridge.sol",
"name": "bt.initialize(_originToken,_chainIdsIndex[0],_name,_symbol,_decimals)",
"type": "node",
"lines": [
351,
352,
353,
354,
355,
356,
357
]
},
{
"file": "contracts/generic/GenericBridge.sol",
"name": "payClaimFee(msg.value)",
"type": "node",
"lines": [
341
]
},
{
"file": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"name": "(success,None) = recipient.call{value: amount}()",
"type": "node",
"lines": [
57
]
},
{
"file": "contracts/generic/GenericBridge.sol",
"name": "tokenMap[_chainIdsIndex[0]][_originToken] = address(bt)",
"type": "node",
"lines": [
358
]
}
],
"description": "Reentrancy in GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8) (contracts/generic/GenericBridge.sol#308-459):\n\tExternal calls:\n\t- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)\n\t\t- address(governance).sendValue(_amount) (contracts/generic/GenericBridge.sol#496)\n\t\t- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)\n\t- bt.initialize(_originToken,_chainIdsIndex[0],_name,_symbol,_decimals) (contracts/generic/GenericBridge.sol#351-357)\n\tExternal calls sending eth:\n\t- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)\n\t\t- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)\n\tState variables written after the call(s):\n\t- tokenMap[_chainIdsIndex[0]][_originToken] = address(bt) (contracts/generic/GenericBridge.sol#358)\n\tGenericBridge.tokenMap (contracts/generic/GenericBridge.sol#40) can be used in cross function reentrancies:\n\t- GenericBridge.tokenMap (contracts/generic/GenericBridge.sol#40)"
}
|
| high | reentrancy | slither | Reentrancy in GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8) (contracts/generic/GenericBridge.sol#308-459): | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "reentrancy-eth",
"elements": [
{
"name": "claimToken",
"type": "function",
"source_mapping": {
"lines": [
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459
],
"start": 10736,
"length": 4869,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"type_specific_fields": {
"parent": {
"name": "GenericBridge",
"type": "contract",
"source_mapping": {
"lines": [
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642
],
"start": 915,
"length": 20422,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
}
},
"signature": "claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)"
}
},
{
"name": "payClaimFee(msg.value)",
"type": "node",
"source_mapping": {
"lines": [
341
],
"start": 11720,
"length": 22,
"ending_column": 31,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 9,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "claimToken",
"type": "function",
"source_mapping": {
"lines": [
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459
],
"start": 10736,
"length": 4869,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"type_specific_fields": {
"parent": {
"name": "GenericBridge",
"type": "contract",
"source_mapping": {
"lines": [
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642
],
"start": 915,
"length": 20422,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
}
},
"signature": "claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)"
}
}
}
},
{
"name": "address(governance).sendValue(_amount)",
"type": "node",
"source_mapping": {
"lines": [
496
],
"start": 16638,
"length": 38,
"ending_column": 51,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 13,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "payClaimFee",
"type": "function",
"source_mapping": {
"lines": [
493,
494,
495,
496,
497,
498
],
"start": 16489,
"length": 204,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"type_specific_fields": {
"parent": {
"name": "GenericBridge",
"type": "contract",
"source_mapping": {
"lines": [
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642
],
"start": 915,
"length": 20422,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
}
},
"signature": "payClaimFee(uint256)"
}
}
}
},
{
"name": "(success,None) = recipient.call{value: amount}()",
"type": "node",
"source_mapping": {
"lines": [
57
],
"start": 2188,
"length": 52,
"ending_column": 61,
"is_dependency": false,
"filename_short": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"starting_column": 9,
"filename_absolute": "/tmp/slither-menrpxh_/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"filename_relative": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "sendValue",
"type": "function",
"source_mapping": {
"lines": [
54,
55,
56,
57,
58,
59
],
"start": 2023,
"length": 312,
"ending_column": 6,
"is_dependency": false,
"filename_short": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"filename_relative": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol"
},
"type_specific_fields": {
"parent": {
"name": "AddressUpgradeable",
"type": "contract",
"source_mapping": {
"lines": [
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189
],
"start": 126,
"length": 6790,
"ending_column": 2,
"is_dependency": false,
"filename_short": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"filename_relative": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol"
}
},
"signature": "sendValue(address,uint256)"
}
}
}
},
{
"name": "bt_scope_0.initialize(_originToken,_chainIdsIndex[0],_name,_symbol,_decimals)",
"type": "node",
"source_mapping": {
"lines": [
407,
408,
409,
410,
411,
412,
413
],
"start": 14118,
"length": 191,
"ending_column": 18,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 17,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "claimToken",
"type": "function",
"source_mapping": {
"lines": [
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459
],
"start": 10736,
"length": 4869,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
},
"type_specific_fields": {
"parent": {
"name": "GenericBridge",
"type": "contract",
"source_mapping": {
"lines": [
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642
],
"start": 915,
"length": 20422,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/generic/GenericBridge.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/contracts/generic/GenericBridge.sol",
"filename_relative": "contracts/generic/GenericBridge.sol"
}
},
"signature": "claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8)"
}
}
}
}
],
"locations": [
{
"file": "contracts/generic/GenericBridge.sol",
"name": "claimToken",
"type": "function",
"lines": [
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459
]
},
{
"file": "contracts/generic/GenericBridge.sol",
"name": "payClaimFee(msg.value)",
"type": "node",
"lines": [
341
]
},
{
"file": "contracts/generic/GenericBridge.sol",
"name": "address(governance).sendValue(_amount)",
"type": "node",
"lines": [
496
]
},
{
"file": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"name": "(success,None) = recipient.call{value: amount}()",
"type": "node",
"lines": [
57
]
},
{
"file": "contracts/generic/GenericBridge.sol",
"name": "bt_scope_0.initialize(_originToken,_chainIdsIndex[0],_name,_symbol,_decimals)",
"type": "node",
"lines": [
407,
408,
409,
410,
411,
412,
413
]
},
{
"file": "contracts/generic/GenericBridge.sol",
"name": "payClaimFee(msg.value)",
"type": "node",
"lines": [
341
]
},
{
"file": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"name": "(success,None) = recipient.call{value: amount}()",
"type": "node",
"lines": [
57
]
},
{
"file": "contracts/generic/GenericBridge.sol",
"name": "tokenMap[_chainIdsIndex[0]][_originToken] = address(bt_scope_0)",
"type": "node",
"lines": [
414
]
}
],
"description": "Reentrancy in GenericBridge.claimToken(address,address,uint256,uint256[],bytes32,bytes32[],bytes32[],uint8[],string,string,uint8) (contracts/generic/GenericBridge.sol#308-459):\n\tExternal calls:\n\t- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)\n\t\t- address(governance).sendValue(_amount) (contracts/generic/GenericBridge.sol#496)\n\t\t- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)\n\t- bt_scope_0.initialize(_originToken,_chainIdsIndex[0],_name,_symbol,_decimals) (contracts/generic/GenericBridge.sol#407-413)\n\tExternal calls sending eth:\n\t- payClaimFee(msg.value) (contracts/generic/GenericBridge.sol#341)\n\t\t- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)\n\tState variables written after the call(s):\n\t- tokenMap[_chainIdsIndex[0]][_originToken] = address(bt_scope_0) (contracts/generic/GenericBridge.sol#414)\n\tGenericBridge.tokenMap (contracts/generic/GenericBridge.sol#40) can be used in cross function reentrancies:\n\t- GenericBridge.tokenMap (contracts/generic/GenericBridge.sol#40)"
}
|
| high | upgradeability | slither | ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#207-213) uses delegatecall to a i... | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "controlled-delegatecall",
"elements": [
{
"name": "_functionDelegateCall",
"type": "function",
"source_mapping": {
"lines": [
207,
208,
209,
210,
211,
212,
213
],
"start": 7247,
"length": 455,
"ending_column": 6,
"is_dependency": false,
"filename_short": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"filename_relative": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol"
},
"type_specific_fields": {
"parent": {
"name": "ERC1967UpgradeUpgradeable",
"type": "contract",
"source_mapping": {
"lines": [
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215
],
"start": 470,
"length": 7265,
"ending_column": 2,
"is_dependency": false,
"filename_short": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"filename_relative": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol"
}
},
"signature": "_functionDelegateCall(address,bytes)"
}
},
{
"name": "(success,returndata) = target.delegatecall(data)",
"type": "node",
"source_mapping": {
"lines": [
211
],
"start": 7512,
"length": 67,
"ending_column": 76,
"is_dependency": false,
"filename_short": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"starting_column": 9,
"filename_absolute": "/tmp/slither-menrpxh_/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"filename_relative": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol"
},
"type_specific_fields": {
"parent": {
"name": "_functionDelegateCall",
"type": "function",
"source_mapping": {
"lines": [
207,
208,
209,
210,
211,
212,
213
],
"start": 7247,
"length": 455,
"ending_column": 6,
"is_dependency": false,
"filename_short": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-menrpxh_/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"filename_relative": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol"
},
"type_specific_fields": {
"parent": {
"name": "ERC1967UpgradeUpgradeable",
"type": "contract",
"source_mapping": {
"lines": [
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215
],
"start": 470,
"length": 7265,
"ending_column": 2,
"is_dependency": false,
"filename_short": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-menrpxh_/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"filename_relative": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol"
}
},
"signature": "_functionDelegateCall(address,bytes)"
}
}
}
}
],
"locations": [
{
"file": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"name": "_functionDelegateCall",
"type": "function",
"lines": [
207,
208,
209,
210,
211,
212,
213
]
},
{
"file": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
"name": "(success,returndata) = target.delegatecall(data)",
"type": "node",
"lines": [
211
]
}
],
"description": "ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#207-213) uses delegatecall to a input-controlled function id\n\t- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#211)"
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xad26f16b0b04eecbfce23de88c0f4e0f46ed59d7c0c5150411053c7a2713d7bc
call_targets:
0x438285fbccba55ce8cdef276030e6b35a0b65b6b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xad26f16b0b04eecbfce23de88c0f4e0f46ed59d7c0c5150411053c7a2713d7bc",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x438285fbccba55ce8cdef276030e6b35a0b65b6b"
],
"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": "0xdf2ebdbb",
"selector": "0xdf2ebdbb",
"calldata_variants": [
"0xdf2ebdbb",
"0xdf2ebdbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7246042",
"selector": "0xe7246042",
"calldata_variants": [
"0xe7246042",
"0xe72460420000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe9008d5b",
"selector": "0xe9008d5b",
"calldata_variants": [
"0xe9008d5b",
"0xe9008d5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xefdcd974",
"selector": "0xefdcd974",
"calldata_variants": [
"0xefdcd974",
"0xefdcd9740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffb2efb8",
"selector": "0xffb2efb8",
"calldata_variants": [
"0xffb2efb8",
"0xffb2efb80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc60c9a54",
"selector": "0xc60c9a54",
"calldata_variants": [
"0xc60c9a54",
"0xc60c9a540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4638d4e",
"selector": "0xd4638d4e",
"calldata_variants": [
"0xd4638d4e",
"0xd4638d4e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2954,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6624,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7765,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 6,
"guards_detected": [],
"untrusted_call_count": 6
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xad26f16b0b04eecbfce23de88c0f4e0f46ed59d7c0c5150411053c7a2713d7bc
call_targets:
0x438285fbccba55ce8cdef276030e6b35a0b65b6b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xad26f16b0b04eecbfce23de88c0f4e0f46ed59d7c0c5150411053c7a2713d7bc",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x438285fbccba55ce8cdef276030e6b35a0b65b6b"
],
"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": "0xdf2ebdbb",
"selector": "0xdf2ebdbb",
"calldata_variants": [
"0xdf2ebdbb",
"0xdf2ebdbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7246042",
"selector": "0xe7246042",
"calldata_variants": [
"0xe7246042",
"0xe72460420000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe9008d5b",
"selector": "0xe9008d5b",
"calldata_variants": [
"0xe9008d5b",
"0xe9008d5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xefdcd974",
"selector": "0xefdcd974",
"calldata_variants": [
"0xefdcd974",
"0xefdcd9740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffb2efb8",
"selector": "0xffb2efb8",
"calldata_variants": [
"0xffb2efb8",
"0xffb2efb80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc60c9a54",
"selector": "0xc60c9a54",
"calldata_variants": [
"0xc60c9a54",
"0xc60c9a540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4638d4e",
"selector": "0xd4638d4e",
"calldata_variants": [
"0xd4638d4e",
"0xd4638d4e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2954,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6624,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7765,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 6,
"guards_detected": []
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0xed557d6e391b23fad54260636f5b9eeb87072d4431bc5f7b66d92b9b8e496eb3
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xed557d6e391b23fad54260636f5b9eeb87072d4431bc5f7b66d92b9b8e496eb3",
"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": "0xdf2ebdbb",
"selector": "0xdf2ebdbb",
"calldata_variants": [
"0xdf2ebdbb",
"0xdf2ebdbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7246042",
"selector": "0xe7246042",
"calldata_variants": [
"0xe7246042",
"0xe72460420000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe9008d5b",
"selector": "0xe9008d5b",
"calldata_variants": [
"0xe9008d5b",
"0xe9008d5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xefdcd974",
"selector": "0xefdcd974",
"calldata_variants": [
"0xefdcd974",
"0xefdcd9740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffb2efb8",
"selector": "0xffb2efb8",
"calldata_variants": [
"0xffb2efb8",
"0xffb2efb80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc60c9a54",
"selector": "0xc60c9a54",
"calldata_variants": [
"0xc60c9a54",
"0xc60c9a540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4638d4e",
"selector": "0xd4638d4e",
"calldata_variants": [
"0xd4638d4e",
"0xd4638d4e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 2,
"create2_count": 1
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | auth | codex | Signatures lack contract-domain separation, enabling replay across bridge instances | 75 | no | — |
viewevidence_json{
"evidence": "ClaimId omits contract address; verifySignatures uses the raw claimId digest.",
"locations": [
"contracts/generic/GenericBridge.sol:325",
"contracts/generic/GenericBridge.sol:274"
],
"recommendation": "Include address(this) (and ideally EIP-712 domain fields such as chainId and contract address) in the signed payload so signatures are valid only for a specific bridge instance. Update off-chain signing to match the new domain-separated digest.",
"exploit_scenario": "Validators sign a valid claim for one GenericBridge instance. An attacker reuses the same (r,s,v) on a second GenericBridge deployed on the same chain with the same approver set. Because the signed data does not bind to address(this), verifySignatures accepts the signatures and the second instance mints/withdraws funds, allowing duplicate claims or draining liquidity on that instance."
}
|
| low | auth | codex | addApprovers allows zero address, letting invalid signatures count as approvals | 65 | no | — |
viewevidence_json{
"evidence": "addApprovers has no non-zero check; verifySignatures treats any approverMap[signer] as valid.",
"locations": [
"contracts/generic/GenericBridge.sol:147",
"contracts/generic/GenericBridge.sol:285"
],
"recommendation": "Reject zero addresses in addApprovers and/or ignore signer == address(0) inside verifySignatures.",
"exploit_scenario": "If governance accidentally adds address(0) via addApprovers, any invalid signature (ecrecover returns address(0)) is counted as a valid approver. An attacker then needs only minApprovers-1 real signatures to pass verification."
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 2,
"create2_count": 1
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 12
}
|